私はビューオブジェクト(カードなど)がすべてCALayersであるカードゲームを開発しています。これらのオブジェクトは、mainBoard
(CALayer)のサブレイヤとして追加されます。これは、[UIView layer]
プロパティのサブレイヤです(mainView
)。すべてがOKです。mainView
クラスのコールバックtouchesBegan:withEvent:
を介してどのレイヤーに触れているかを確認するためのヒットテストを行うなどのことができます。CALayer内のUIScrollView
しかし、私は「大きな」CALayersを表示するために私のmainBoard
内のスクロールを持っている必要がありますので、私は最初のCAScrollLayer
内部の「大きな」のCALayerを追加してみましたが、私はCAScrollLayer
は本当に(doesnの」スクロールしないことに気づきましたユーザー入力を処理する、スクロールバーを描画しない)。そのため、回避策は、UIScrollViewをmainView
UIViewに直接追加することです。 [scrollView.layer addSublayer:<bigger layer>]
を使用して、「より大きな」レイヤーを追加しようとするまで、UIScrollView
は完全にスクロールします。
私はCALayer内で「スクロール可能な」オブジェクトをどのように持つことができますか?
ありがとうございます!
がなぜ含まれるビューのレイヤーに追加していない、良いアイデアではありませんあなたのscrollviewによって? – nacho4d
「より大きい」CALayersが何であるかを定義できますか? 「より大きな」アイテムがCALayersでなければならない理由を簡単に説明できますか?あなたの質問を読んで、なぜあなたはそれを単純に保つのではなく、ちょうどUIScrollViewを使用しているのだろうと思います。あなたが求めてきたものはすべてあります。 – Mark
私はUIKit抽象化レベルの代わりにCore Animationレベルで作業しているので、アプリケーション全体がCALayersオブジェクトで構成されています。問題は、Core Animationはスクロール可能なコンポーネントを提供しないため、UIKitオブジェクト(UIScrollView)とCoreAnimationオブジェクト(CALayers)を混在させ、シームレスに動作させるという回避策を講じなければならなかった。 UIKitはCoreAnimationの単なるラッパーなので、これは問題ではありません。ありがとう –