1

我在 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 吗?我原以为它可以轻松应对。我可以做任何明显的优化吗?

4

1 回答 1

3

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

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

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

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

于 2013-04-15T18:11:04.700 回答