帧更改后,UICollectionView会错误地显示单元格

Ben*_*nRB 7 ios uicollectionview

我注意到,如果我更改UICollectionView的帧(例如,当切换调用状态栏时),集合视图不会为其新帧正确更新其单元格.在短视频中看起来最简单:

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

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

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

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

mar*_*mor 10

我有一个类似的问题,在这里我UICollectionViewframe改变,除非我把reloadData它卡在了同一个地方,而不与运动CollectionView.

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

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

工作得很好.