私はに苦労していsetNeedsDisplay
ます。drawRect:
ビューの範囲内にある場合は、呼び出されたビューとその下の階層の呼び出しをトリガーすることになっていると思いましたが、そうではありません。これが私の設定です:
アプリケーションデリゲートから、基本的に画面全体をカバーする正方形のサイズのビューを作成します。このビューはと呼ばれTrollCalendarView
ます。TrollCalendarView
コンパスによってトリガーされる回転を除いて、発生することはあまりありません。
の中心の周りに7面の配置で配置された2D描画オブジェクトを含むことを目的としたTrollCalendarView
calledの7つのサブビューがあります。したがって、iPadを回転させると、これらの7つのビューは、常に基本的な方向を向くように回転します。PlatformView
TrollCalendarView
各サブビューには、PlatformView
と呼ばれる3つのサブビューが含まれていますTower
。各タワーには、で実装された2D描画オブジェクトが含まれていdrawRect:
ます。
したがって、要約TrollCalendarView
すると、空drawRect:
の、サブビューPlatformView
、およびPlatformview
-> Towerがあり、それぞれにdrawRect実装があります。さらに、TowerはPlatformの範囲内にあり、PlatformはTrollCalendarViewの範囲内にあります。
にTrollCalendarView
スワイプレコグナイザーを追加しました。スワイプが発生すると、プロパティが更新され、呼び出します[self setNeedsDisplay]
が、何も起こらないようです。drawRect:
これらの各ビューのメソッドにNSLogエントリを追加すると、TrollCalendarView
drawRect:
メソッドのみが呼び出されます。皮肉なことに、それはdrawRect
メソッドが空になる1つのビューです。
xibファイルはありません。
drawRect
他のサブビューのメソッドが呼び出されるようにするには、何をする必要がありますか?これに影響を与える可能性のあるすべてのニュアンスを説明するドキュメントがどこかにありますか?