UICollectionView 对齐单元格

Posted

技术标签:

【中文标题】UICollectionView 对齐单元格【英文标题】:UICollectionView alignment of cells 【发布时间】:2013-06-05 17:16:27 【问题描述】:

我有一个带有 2 种不同类型的 UICollectionViewCells 的 UICollectionView。有一个选项卡提示显示每种类型的单元格,一次只能看到一种类型的单元格。

由于某种原因,一种单元格在 UICollectionView 中向左对齐,但另一个单元格在中心水平对齐。我希望两种类型的单元格都左对齐。

边缘插图是:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

    return UIEdgeInsetsMake(10,10,10,10);

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

单元格的布局会根据它们的大小而有所不同,因此您需要为每种单元格类型使用不同的插图。我认为这应该是可行的:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:section];
    if ([cell isKindOfClass:[MyClass1 class]])
        return UIEdgeInsetsMake(10,10,10,10);
    else
        return UIEdgeInsetsMake(20,10,10,10);

将您的正确类名替换为 MyClass1 并尝试边缘插入,直到获得您想要的行为。

【讨论】:

谢谢,这是一个愚蠢的错误。我没有意识到,但居中的单元格太宽,无法在一行中有多个单元格。我已经减小了单元格的大小并解决了这个问题。

以上是关于UICollectionView 对齐单元格的主要内容,如果未能解决你的问题,请参考以下文章

uicollectionview 单元格位置未在网格上对齐

iOS UICollectionView:具有交替网格对齐的圆形视图的单元格

UICollectionView estimatedItemSize - 最后一个单元格未对齐

UICollectionView 水平对齐滚动第一个单元格中心对齐第一次使用 Swift 时不完全放置中心位置

将 SKProduct 价格提取到 UICollectionView 单元格标签中

如何在 Swift3.0 中居中对齐 UICollectionView 的单元格?