【发布时间】:2012-01-06 03:14:51
【问题描述】:
所以,我目前有一个 GridView 类,这基本上就是它听起来的样子。它是 UIView 的一个子类,它有一个暂存区域,其中有一堆子视图以类似网格的方式放置。 GridView 的每个单元格都是一个自定义 UIView 子类,它调用 drawRect。
我按照 UITableView 模式实现了延迟加载。我只加载并添加了可见的网格单元(每侧 +/- 2 个单元)。随着视图的滚动,我缓存了 NSMutableSet 中不再可见的单元格,并重用了该 Set 中的单元格来构建现在可见的单元格。一切似乎都运行良好,因为我已经对其进行了测试和分析,没有内存泄漏。
问题是滚动太慢/生涩。用户滚动得越快,它就越生涩。有时,如果滚动速度非常快,它会引发内存警告。经过一些调试工作,我发现当它开始冻结和抽搐时,gridview 中的子视图并没有被删除,就像它们应该的那样
我还注意到 iPad 1 上的滚动速度明显低于 iPad 2。
我的问题是,有人对如何处理这个问题有任何想法吗?任何技巧或优化来阻止滚动的生涩?在这一点上,任何事情都会有所帮助,因为我已经尝试了 2 天。提前致谢
【问题讨论】:
标签: ios performance uitableview uiview lazy-loading