我在viewDidLoad
方法中向视图控制器的根视图添加了一些子视图。不久之后,当一个特定事件发生时,我只是改变其中一个视图的背景颜色。在再次布置子视图(willLayoutSubviews
被调用)之前,此更改不可见。如果我更改设备的方向或等待10-20秒,则会发生这种情况。我在做出更改后立即在子视图上调用了setNeedsDisplay
,但它没有帮助。
总而言之,我只是想在特定事件发生后更改子视图的背景颜色,并且我希望这些更改可能在一秒左右的时间内在屏幕上显示。我错过了什么?
注意:如果重要,相关视图的超级视图为GLKView
。
答案 0 :(得分:2)
确保您只是从主线程进行UI更新。您可以使用performSelectorOnMainThread:withObject:waitUntilDone:
或dispatch_async(dispatch_get_main_queue(), ^{/* your UI modifying code here */});
修复此问题。