4

私はC4を少し拡張しようとしており、ジェスチャーとアニメーションがC4Shapeオブジェクトでどのように機能するかを理解しようとしています。ソースを調べたところ、すべてCAShapeLayersに基づいているようで、ジェスチャ認識機能を直接接続することはできません。誰かがこれがC4でどのように機能するか説明できますか?

4

1 に答える 1

3

そうです、C4で表示されるすべてのオブジェクトは、サブクラスCALayerに基づいています。たとえば、C4ShapesサブクラスC4ShapeLayersに対して、C4MoviesサブクラスC4PlayerLayer(すでにCALayerのサブクラスであるAVPlayerLayerのサブクラス)、および画像は基本的なCALayerのコンテンツとして描画されます。

ただし、これらの各レイヤーはUIControl(UIView)のサブクラスに含まれているため、すべてのレイヤーで個別にタッチを登録でき、すべてのレイヤーにジェスチャレコグナイザーをアタッチできます。

例として、C4Shapeの階層は次のとおりです。

UIView> UIControl> C4Control(メインレイヤーとしてC4ShapeLayerを使用)。

映画の場合:

UIView> UIControl> C4Control(メインレイヤーとしてC4PlayerLayerを使用)。

したがって、表示されるすべてのオブジェクトには次のものがあります。

UIView> UIControl> C4Control

...C4Controlオブジェクトのカスタムレイヤーを使用します。

于 2012-05-23T16:46:52.937 に答える