使用drawRect延迟加载UIView:绘图

Posted

技术标签:

【中文标题】使用drawRect延迟加载UIView:绘图【英文标题】:Lazy loading of UIViews with drawRect: drawing 【发布时间】:2012-12-19 14:32:30 【问题描述】:

我有一个大的 UIScrollView 和近 40 个大的 (1000x700) UIViews 放在上面。这些视图中的每一个都有几个带有自定义绘图的子视图。我应该如何延迟加载那些大视图? 我查了几个懒加载的解决方案,但都是指 UIImage 加载,在 UIView 放置后使用 posibility 加载 UIImage。但在我的情况下,即使将大 UIView 添加为子视图也会导致滞后。有什么办法可以让滚动速度更快,同时延迟加载内容?

【问题讨论】:

您是否考虑过使用 Coco2D 之类的工具来完成此类工作? cocos2d-iphone.org 【参考方案1】:

我会使用 UITableView 而不是 UIScrollView,然后通过 UITableViewDataSource cellForRowAtIndexPath: 添加您的自定义视图,延迟加载自然会发生。

【讨论】:

使用 addSubview: 会更快吗?我在问,因为延迟加载很容易制作,唯一的问题是添加子视图(这会导致延迟) 是的,我同意,tableView 会为您处理延迟加载。 它没有帮助。添加新单元格时仍然有延迟 添加视图时您都在做什么?您是否为每个表格单元格做一个视图? 嗯...一个大视图,大约有 20 个子视图

以上是关于使用drawRect延迟加载UIView:绘图的主要内容,如果未能解决你的问题,请参考以下文章

调整 UIView 的大小,但 drawRect 完成的绘图也会改变大小

如何使用子视图的延迟/动态加载实现自定义 UIView,类似于 UITableView

调整 UIView 的大小并在 drawRect 中动态调整绘图的大小

UIView 子类:drawRect 未调用

延迟切换uiviews

iOS重绘机制drawRect