2

我在viewDidLoad方法中向我的视图控制器的根视图添加了一些子视图。不久之后,当发生特定事件时,我只是更改其中一个视图的背景颜色。在再次布置子视图(willLayoutSubviews被调用)之前,此更改不可见,如果我更改设备的方向或等待 10-20 秒,则会发生这种情况。我setNeedsDisplay在进行更改后立即调用子视图,但这没有帮助。

总而言之,我只是想在某个事件发生后更改子视图的背景颜色,我希望这些更改可能在一秒钟左右的时间内在屏幕上可见。我错过了什么?

注意:如果重要,相关视图的超级视图是GLKView.

4

1 回答 1

2

确保您只从主线程进行 UI 更新。您可以使用performSelectorOnMainThread:withObject:waitUntilDone:或来解决此问题dispatch_async(dispatch_get_main_queue(), ^{/* your UI modifying code here */});

于 2013-04-30T21:38:41.193 回答