添加第三个UICollectionView后,UIScrollView显着滚动滞后

时间:2013-04-13 15:59:01

标签: iphone uiview uiscrollview uicollectionview lag

我已经为我的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 个答案:

答案 0 :(得分:2)

经过一段时间的头痛和相当多的时间后,我已经找到了问题。它与集合视图无关,它们只是突出了更深层次的问题。

我在视图中添加了一些阴影效果,我不知道这会有如此多的性能影响。当它所在的视图控制器放入导航控制器时更糟糕。

self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius  = 10.0f;
self.view.layer.shadowColor   = [UIColor blackColor].CGColor;

在UIScrollViews或UICollectionViews中遇到性能问题的任何其他人都要确保不要犯错误。删除这三行代码并没有使滚动变得非常流畅。