4

我正在尝试稍微扩展 C4,并试图弄清楚手势和动画如何在 C4Shape 对象上工作。我查看了源代码,看起来它们都是基于 CAShapeLayers 的,手势识别器不能直接附加到它上面。有人可以解释这在 C4 中是如何工作的吗?

4

1 回答 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 回答