我对 UIScrollView 有问题,我尝试用自己的行(单独的 nib)创建类似表格的东西。1-10 行一切正常,但超过 20 个元素会出现问题。该应用程序开始运行缓慢,并且特技。是否有任何解决方案可以优化 100-200 个自己的子视图的滚动视图?
问问题
434 次
2 回答
1
UITableView 和 UICollectionView 都通过删除不再需要的子视图并将它们放入重用队列来进行优化。通过重用这些视图,系统不必创建和销毁它们的支持层,而是可以重用它们。这样,您在屏幕上只能拥有尽可能多的子视图。
通常,您希望在滚动视图子类的 layoutSubviews 或相应的 didScroll 委托方法中添加/删除可见子视图。就我个人而言,我更喜欢 layoutSubviews,因为它在事件链中稍早一些。
基本上,只要至少 1 px 的子视图出现在滚动视图的边界内,您就会从重用队列中获得一个可重用的子视图,并在其像素不再可见时立即删除子视图。
如果您使用 UITableview 或 UICollectionView 而不是普通的滚动视图,它们会提供一种机制来在 NIB 中注册视图以获取某些重用标识符,然后出队将自动从 NIB 加载子视图的新实例,如果有,则没有队列或出队.
于 2012-12-13T19:52:16.080 回答
1
使用UITableView
. 这正是它的设计目的。
于 2012-12-13T19:44:30.853 回答