我在viewDidLoad
方法中向我的视图控制器的根视图添加了一些子视图。不久之后,当某个事件发生时,我只是简单地改变其中一个视图的背景颜色。直到子视图重新布局(willLayoutSubviews
被调用)后,此更改才可见。如果更改设备的方向或等待10-20秒,则会发生这种情况。我在修改后在子视图上打电话setNeedsDisplay
,但没有帮助。总之,我只是想在某个事件发生后改变一个子视图的背景颜色,而且我希望这些更改可能在一秒钟内在屏幕上可见。我错过了什么?UIView - 子视图内容不会重绘,直到子视图再次布局。为什么?
注意:万一它很重要,有问题的视图的超级视图是GLKView
。
你是否偶然从后台线程执行这些更新? – jszumski 2013-04-30 20:41:10
想想吧,我正在执行代理方法回调中的这些更新,事实上,这是在异步调度队列中运行的。我现在使用'performSelectorOnMainThread'来确保更新在主线程中执行。随意添加答案作为答案,我会将其标记为正确。谢谢! – bsirang 2013-04-30 21:34:11