【iOS问题集锦】-UICollectionView加载更多后cell偏移

问题描述
使用UICollectionView做列表显示,MJRefresh作为下拉刷新及上啦加载更多结构,cell支持多样式,页面数据加载完成,第一页完美显示,但是加载完成第二页数据刷新后发现,cell显示向下偏移,并且列表顶部出现空白,但是空白上的cell数据正常显示。如图(比比宝-唯品会返利)所见,第一个cell位置发生偏移,并且下方留有空白。

【iOS问题集锦】-UICollectionView加载更多后cell偏移
文章图片
比比宝-唯品会返利 问题分析
1.cell注册重复,即统一ID注册不同的cell模版。经数据打印调试,发现数据结构和模版注册都是正确的。pass
2.因为刷新头造成的偏移。经验证,把下拉刷新头部关闭,还是有同样的问题。pass
3.因为项目其它地方对UICollectionView进行扩展做了改变。经Demo项目测试,问题复现。pass
解决办法
经过各种百度无果,在我将要放弃的时候,有一篇帖子提到自动布局需要的设置:

UICollectionViewFlowLayout *layout = ... layout.estimatedItemSize = CGSizeMake(0.01, 0.01);

没错,最阔祸首就是它,因为我的cell高度都是固定的,但是我还是设置了这个值。只需要把这行代码屏蔽掉就可以了。
//layout.estimatedItemSize = CGSizeMake(0.01, 0.01);

总结
【【iOS问题集锦】-UICollectionView加载更多后cell偏移】“众里寻她千百度,蓦然回首那人却在灯火阑珊处”。就是这样一个很小的问题,我用了一天的时间查阅各种资料文档,都没有解决办法。特此记录。

    推荐阅读