在我覆盖UICollectionViewFlowLayout
它后显示 3 个警告,如下所示
仅记录一次 UICollectionViewFlowLayout 缓存不匹配的帧
UICollectionViewFlowLayout
已缓存索引路径 {length = 2, path = 0 - 1} 的帧不匹配 - 缓存值:{{145, 0}, {130, 130}};期望值:{{5, 141}, {130, 130}}这可能是因为流布局子类 FullyHorizontalFlowLayout 正在修改返回的属性
UICollectionViewFlowLayout
而不复制它们
我使用 ' FullyHorizontalFlowLayout
' 使 i 单元格从左到右排列(原来是从上到下)。下面是我的“ layoutAttributesForElementsInRect
”代码
-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect
{
CGFloat newX = MIN(0, rect.origin.x - rect.size.width/2);
CGFloat newWidth = rect.size.width*2 + (rect.origin.x - newX);
CGRect newRect = CGRectMake(newX, rect.origin.y, newWidth, rect.size.height);
// Get all the attributes for the elements in the specified frame
NSArray *allAttributesInRect = [super layoutAttributesForElementsInRect:newRect];
for (UICollectionViewLayoutAttributes *attr in allAttributesInRect) {
UICollectionViewLayoutAttributes *newAttr = [self layoutAttributesForItemAtIndexPath:attr.indexPath];
attr.frame = newAttr.frame;
attr.center = newAttr.center;
attr.bounds = newAttr.bounds;
attr.hidden = newAttr.hidden;
attr.size = newAttr.size;
}
return allAttributesInRect;
}