我正在尝试稍微扩展 C4,并试图弄清楚手势和动画如何在 C4Shape 对象上工作。我查看了源代码,看起来它们都是基于 CAShapeLayers 的,手势识别器不能直接附加到它上面。有人可以解释这在 C4 中是如何工作的吗?
问问题
111 次
1 回答
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 对象的自定义层。
于 2012-05-23T16:46:52.937 回答