【问题标题】:Space between UICollectionViewCell rowsUICollectionViewCell 行之间的空间
【发布时间】:2013-09-15 22:24:24
【问题描述】:

目前我的收藏中有 9 件商品。我想要我拥有的每个部分都有一个 3*3 的网格。因此,当我想进入下一部分时,我向右滚动,我看到了下一部分的 3*3 网格。我所做的就是将 UICollection 的高度设置为 3*height_of_my_cell。我还确保:

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
    return 0.0f;
}

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
    return 0.0f;
}

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    return UIEdgeInsetsMake(0, 0, 0, 0);
}

所以目标实际上是让单元格彼此粘贴(它们之间没有空格)。问题是我得到的是:

要查看 7,8 和 9,我需要向右滚动。所以我看到我能够摆脱“列”之间的空间,但不能摆脱行。那么我需要创建一个自定义UICollectionViewFlowLayout 来实现这一点吗?这也是在 iOS7 上完成的,我不确定它是否会影响最终结果。

【问题讨论】:

    标签: ios uicollectionview ios7


    【解决方案1】:

    只需设置UICollectionViewFlowLayout的属性,如:

    UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; layout.minimumLineSpacing = 0;

    【讨论】:

      【解决方案2】:

      能够通过创建自定义UICollectionViewFlowLayout 并添加以下行来解决该问题:

      [self setSectionInset:UIEdgeInsetsMake(-65.0f, 1.0f, 0.0f, 0.0f)];
      

      【讨论】: