我正在尝试扩展C4,并试图弄清楚手势和动画如何在C4Shape对象上起作用。我查看了源代码,看起来它们都是基于CAShapeLayers,无法直接附加手势识别器。有人可以解释一下这在C4中的作用吗?
答案 0 :(得分:3)
对,C4中的所有可见对象都基于子类CALayer。例如,C4Shapes子类C4ShapeLayers,而C4Movies子类C4PlayerLayer(AVPlayerLayer的子类,已经是CALayer的子类),图像被绘制为基本CALayer的内容。
但是,这些层中的每一个都包含在UIControl(UIView)的子类中,因此它们都可以单独注册触摸,并且它们都可以附加手势识别器。
例如,C4Shape的层次结构为:
UIView> UIControl> C4Control(以C4ShapeLayer为主 层)。
对于电影:
UIView> UIControl> C4Control(以C4PlayerLayer为主) 层)。
等
因此,所有可见对象都具有以下内容:
UIView> UIControl> C4Control
...使用C4Control对象的自定义图层。