機械的に重要な3つのネストされたビューがありますが、視覚的な要素がないアプリケーションがあります。
- 独自のコンテンツを持たず、単にCALayersのホストとして使用されるバニラUIView。
- UIScrollView(原点が照会され、CALayersを3Dに配置するために使用されます。実際には、このビューを使用して、スクロールビューの「メカニズム」を忠実に複製します)、
- スクロールビューの内容:UIViewサブクラス。タッチイベントを取得してデリゲートに渡すだけです。重要なのはUIResponder機構だけです。
CALayersをホストするUIViewは、CALayersが描画される背景画像であるUIImageViewの兄弟です。
これらの空のUIViewのいずれにも、描画または合成のオーバーヘッド(時間またはストレージ)が関連付けられていないことを確認するか、それが不可能な場合は、このオーバーヘッドをできるだけ小さくして理解したいと思います。別のアプローチを試すべきかどうかを決めることができるかもしれません。
Interface Builderでは、描画する前にコンテキストをクリアしないようにすべてのビューを設定しました。ただし、これらは完全に不透明ではないため、不透明に設定していません。完全に透明です。スクロールビューのコンテンツに透明なクリアカラーを指定する必要があることがわかりました(これもIBで、背景色の不透明度をゼロに設定することで)。これは、描画されていることを示していますが、これは望ましくありません。
つまり、何が描画され、何が描画されないのか(iPhone/シミュレーター用のQuartzDebugのようなツールを知っている人はいますか?)、または描画されないようにする方法についてはあまりわかりません。
アドバイスは大歓迎です!ありがとう、ベンジョン