2

我使用自定义集合 cell.set 创建了一个集合视图,其中 flowlayout 为

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(250, 480)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
[self.templateCollectionView setCollectionViewLayout:flowLayout];

我将它设置为水平但仍然有一个单元格在图中att mmp放错了位置,如果我们滚动并加载它,它将回到正确的位置。谁能建议这有什么问题?

收藏

4

2 回答 2

2

这个答案有一个对我有用的解决方法。以下是我为水平滚动编辑的修复程序。基本上只是过滤掉下面提供坏帧的属性项。

- (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;
}
于 2013-04-03T14:51:45.070 回答
0

当我们没有给出适当的单元格间距时,通常会发生这种情况。确保在填充 uicollectionview 的单元格时,应给出单元格间距。还要通过UICollectionView flowLayout 不正确地包装单元格(iOS)它可以帮助你。

于 2013-04-04T13:37:00.903 回答