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

问题描述

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


【iOS问题集锦】-UICollectionView加载更多后cell偏移_第1张图片
比比宝-唯品会返利

问题分析

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偏移)