为什么我的所有Interface Builder视图都要等到其中一个在加载之前完成?

时间:2011-06-15 21:18:00

标签: objective-c interface-builder

我的IB有很多子视图。其中一个是使用自定义drawRect方法的自定义视图。我不明白为什么我的IB中的所有视图都不会显示,直到一个自定义视图完成绘图。理想情况下,我希望自定义视图仍然可以在屏幕上显示其他视图。有一个简单的方法吗?

自定义视图位于层次结构的底部,其他子视图显示在其顶部。

1 个答案:

答案 0 :(得分:1)

绘图通常会从前到后进行,因为视图绘制的内容可能需要与其背后的内容合成。可能会对不透明视图(使用-isOpaque响应YES的视图)进行例外处理,根据定义,这些视图不依赖于它们背后的内容。

如果绘图需要相当长的时间,则应考虑绘制到主线程外的缓冲区,然后使用该预合成图像更新视图的内容。然后,您将使用UIImageView周围的包装替换自定义视图,这需要绘制到图像所需的时间,然后更新图像视图显示的图像。 (这基本上是手动双缓冲。)