美文网首页
使用UICollectionViewFlowLayout自定义时

使用UICollectionViewFlowLayout自定义时

作者: 小手er冰凉 | 来源:发表于2017-06-01 16:09 被阅读104次

在使用UICollectionViewFlowLayout自定义Item时,打印报出以下警告:

2017-06-01 15:59:20.965 EasyFlowerFind[2247:746359] Logging only once for UICollectionViewFlowLayout cache mismatched frame2017-06-01 15:59:20.966 EasyFlowerFind[2247:746359] UICollectionViewFlowLayout has cached frame mismatch for index path{length = 2, path = 0 - 1} - cached value: {{139.96000000000001, 0}, {62.840000000000003, 24}}; expected value: {{190, 0}, {62.840000000000003, 24}}

2017-06-01 15:59:20.966 EasyFlowerFind[2247:746359] This is likely occurring because the flow layout subclass EFTagsCollectionLayout is modifying attributes returned by UICollectionViewFlowLayout without copying them

查了很多资料,给出的解决办法都是在:

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect;

这个方法里面要对NSArray的UICollectionViewLayoutAttributes进行copy操作。

NSArray * array =[super layoutAttributesForElementsInRect:rect];

改成:

NSArray * array = [[NSArray alloc]initWithArray:[super layoutAttributesForElementsInRect:rect] copyItems:YES];

试过这个方法后还是不行,希望有看到的能解决的给说下。

相关文章

网友评论

      本文标题:使用UICollectionViewFlowLayout自定义时

      本文链接:https://www.haomeiwen.com/subject/zojefxtx.html