2011-09-09 76 views
0

我在根UIView中显示大量的UIViews。 (我知道这不是一个好习惯)。子视图包括使用Quartz绘制一些行的UIImageViews,UILabels和自定义UIViews。在生成所有视图后,我将根视图添加到UISCrollView中以显示它们。问题是,所有图像都会立即显示,但标签中的文本和我在drawRect方法中绘制的线条需要很长时间才能显示。如果我缩放滚动视图,它们都会立即显示。有什么问题?谢谢。UIView需要很长时间才能显示

+0

显示您正在使用的代码。 – WrightsCS

回答

4

很难说没有看到你的代码,但听起来像你的应用程序的东西。 iOS可以处理一个子视图的数量而不会窒息或口吃。而且所有的东西都是单线程的 - 事实上,据我所知,所有的渲染都发生在同一个运行循环中(CATiledLayer -backed视图是我能想到的唯一例外)。所以即使渲染陷入困境,我也会期待一段很长的停顿,然后一切显示出来。不是你描述的零碎结果。

您是以编程方式或从笔尖添加视图吗?一切都在同一个笔尖,还是一些东西在他们自己的独立笔尖?你的UIViewController情况是什么样子的?

试着在显示较晚的东西中弹出一些日志记录。他们的-drawRect:是否真的被叫得很晚,还是被其他所有事情调用,并被别的东西遮挡了?试着开始一个没有任何内容的新的干净的应用程序,并将你的每个子视图放在那里看看它们是如何独立执行的?请特别注意您使用GCD,线程或preform:AfterDelay:类型调用的任何地方。

如果所有的失败,作为示例项目发布,所以我们可以真正调试你所做的。

+0

+1的方法... – tipycalFlow

+0

...和+1的多个建议。但是对于Eric Wong:我们需要看到你的代码是确定的。 – Sum

+0

今天我发现了一个'UIButton','UILabel'或者另一个包含文本的控件,如果其上使用的字体在项目中不存在,则需要很长时间才能加载。我从另一个项目导入了一个自定义控件,Xcode试图使用它的字体,尽管它在我当前的项目中不存在。字体甚至显示在属性检查器中。没有任何警告或错误消息。果然,在我改变字体之后,性能还是很好的。 – Alexander

相关问题