ios – UICollectionView在帧更改后错误地显示单元格

前端之家收集整理的这篇文章主要介绍了ios – UICollectionView在帧更改后错误地显示单元格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到,如果我更改UICollectionView的帧(例如,当切换调用状态栏时),集合视图不会为其新帧正确更新其单元格.在一段简短的视频中看起来最简单:

http://cl.ly/2t2Y2A3A2w1D/CollectionViewTest.mov

这个简单测试的源文件在这里:

http://cl.ly/0S0A360B3I3Q/CollectionViewTest.zip

我是否使用UICollectionViewController或UIViewController似乎并不重要.有没有人见过这个?我错过了什么吗?我发现的唯一解决方法是在视图控制器的viewWillLayoutSubviews或viewDidLayoutSubviews中的集合视图上调用reloadData,但是当集合视图的框架受到用户拖动的影响时,它远非理想,因为reloadData被多次调用并导致用户拖动时非常缓慢的UI更新.

解决方法

我有一个类似的问题,我的UICollectionView的框架发生了变化,除非我调用reloadData,否则它会卡在同一个地方,而不会移动CollectionView.

我通过将它添加到我的CollectionViewFlowLayout来修复它:

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
    return YES;
}

工作得很好.

猜你在找的iOS相关文章