添加第三个 UICollectionView 后 UIScrollView 明显的滚动滞后
Posted
技术标签:
【中文标题】添加第三个 UICollectionView 后 UIScrollView 明显的滚动滞后【英文标题】:UIScrollView noticable scrolling lag after adding third UICollectionView 【发布时间】:2013-04-13 15:59:01 【问题描述】:我在 UIScrollView 中添加了第三个集合视图,这似乎产生了一些明显的滚动延迟。
视图层次如下(因为我还不能上传图片):
UIView
-->UIScrollView (large content size 230, 1100)
---->UIView for content
------>UIImageView (background image)
------>UIScrollView
------>UIView
------>PageControl
------>UICollectionView
------>UICollectionView
------>UICollectionView
------>Six labels
实际的 UICollectionView 的水平滚动非常好,只是主 UIScrollView 在上下滚动时有轻微的延迟。
在添加第三个 UICollectionView 之前完全没有任何延迟,它为它的单元格使用不同的类。
似乎只有当所有三个集合视图同时出现在屏幕上时才会出现延迟。
唯一实现的委托方法是scrollViewDidScroll,它只是调整其中一个子视图的大小,所以我认为这根本不会影响它。
仅仅是因为它无法同时处理屏幕上的三个 UICollectionView 吗?我原以为它可以轻松应对。我可以做任何明显的优化吗?
【问题讨论】:
【参考方案1】:在头疼了很久之后,我找到了问题所在。它与集合视图无关,它们只是突出了更深层次的问题。
我在视图中添加了一些阴影效果,我不知道这会对性能造成如此大的影响。更糟糕的是,当它所在的视图控制器被放入导航控制器时。
self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius = 10.0f;
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
其他在 UIScrollViews 或 UICollectionViews 中遇到性能问题的人请确保不要犯我的错误。去掉这三行代码并没有让滚动变得超级流畅。
【讨论】:
以上是关于添加第三个 UICollectionView 后 UIScrollView 明显的滚动滞后的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionView的cell创建直接从第三个数据开始问题
RxSwift - UICollectionView 更新后不更新
UITableviewCell 中的 UICollectionView。添加约束后,UICollectionView 不显示