我正在苦苦挣扎setNeedsDisplay
。我认为它应该触发对它被调用drawRect:
的视图的调用,如果它在视图的范围内,那么它下面的层次结构,但我发现情况并非如此。这是我的设置:
从应用程序委托中,我创建了一个大小为正方形的视图,基本上覆盖了整个屏幕空间。这种观点称为TrollCalendarView
。TrollCalendarView
除了由指南针触发的旋转之外,没有什么事情发生。
有 7 个TrollCalendarView
被调用的子视图,PlatformView
旨在包含 2D 绘图对象,这些对象TrollCalendarView
以 7 面排列的中心排列。因此,当 iPad 旋转时,这 7 个视图会旋转,因此它们始终与基本方向一致。
每个PlatformView
子视图包含 3 个子视图,称为Tower
. 每个塔都包含在drawRect:
.
所以,总而言之,我有TrollCalendarView
empty drawRect:
、 subviewsPlatformView
和Platformview
-> Tower ,每个都有 drawRect 实现。此外,Tower 位于 Platform 的范围内,Platform 位于 TrollCalendarView 的范围内。
在TrollCalendarView
我添加了一个滑动识别器。当我刷卡时,属性会更新,我打电话[self setNeedsDisplay]
但似乎什么也没发生。我将 NSLog 条目添加到drawRect:
每个视图中的方法中,并且仅TrollCalendarView
drawRect:
调用该方法。具有讽刺意味的是,这是一个其drawRect
方法将为空的视图。
没有xib文件。
我需要做什么来确保drawRect
调用其他子视图中的方法?是否有文档描述了可能影响这一点的所有细微差别?