我使用自定义集合cell.set创建了一个集合视图,其中flowlayout为
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(250, 480)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[self.templateCollectionView setCollectionViewLayout:flowLayout];
我将它设置为水平,但仍然在图中放错了单元格,请参阅att mmp
放错位置&如果我们滚动并加载它,它将返回到正确的位置。任何人都可以提出这方面的错误吗?
答案 0 :(得分:2)
this answer有一项适用于我的工作。下面是我为水平滚动编辑使用的修复程序。基本上只是过滤掉下面提供坏帧的属性项。
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {
NSArray *attributes = [super layoutAttributesForElementsInRect:rect];
NSMutableArray *newAttributes = [NSMutableArray arrayWithCapacity:attributes.count];
for (UICollectionViewLayoutAttributes *attribute in attributes) {
if (attribute.frame.origin.y + attribute.frame.size.height <= self.collectionViewContentSize.height) {
[newAttributes addObject:attribute];
}
}
return newAttributes;
}
答案 1 :(得分:0)
通常在我们没有给出适当的细胞间距时发生。确保在填充uicollectionview的单元格时,应该给出单元格间距。 也可以通过UICollectionView flowLayout not wrapping cells correctly (iOS)帮助你。