表示領域のみにコンテンツを提供するCALayerがあります(CATiledLayerに多少似ています)。問題は、CALayerの表示領域が変更されてdisplayLayerが呼び出されたときに、通知を受信する方法がないように見えることです。私は現在、setPosition、setBounds、およびsetTransformをサブクラス化してフックしていますが、これはスーパービュー/レイヤーが変更された場合をキャッチしません(たとえば、UIScrollViewはスクロールビューの原点を変更してスクロールします)。親ビューをフックして、コード全体にsetNeedsDisplayを振りかけたままにしておきます。
もっと良い方法はありますか?