UICollectionReusableView 使用

最近遇到一个很奇葩的bug,collection头部没有被释放,但是在12.0以下的机型会消失,在xr 手机 14.0以上的系统有时候回偶现出不来


问题截图

最后查明原因,是因为UICollectionReusableView 的代理问题

- (CGSize)collectionView:(UICollectionView*)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutreferenceSizeForHeaderInSection:(NSInteger)section

这个方法的 size 中的高度,必须大于0才会调用

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

最终解决办法是在 init 里面给 height 设置高度为0.01 触发代理 然后在动态计算好的高度赋值给height 然后 reload

这里需要注意是 判断高度变化,如果变化才刷新,否则会导致死循环 

遇到的奇葩bug都记录一下,方便以后查阅

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容