【问题标题】:UICollectionView, UICollectionViewFlowLayout: different cells width and same defined spacing between cellsUICollectionView,UICollectionViewFlowLayout:不同的单元格宽度和相同的单元格之间定义的间距
【发布时间】:2013-05-21 20:50:34
【问题描述】:

我重载了UICollectionViewFlowLayout,使其在每个UICollectionViewCell 中都有一个包含UIImages 的水平行滑块。

在重载的UICollectionViewFlowLayout 中,我将minimumLineSpacing 设置为0,以使UICollectionViewCells 之间没有间距。 (默认为 10 像素)

  • 如果每个单元格的宽度相同,0px的间距会正确显示

  • 如果单元格的宽度更大,则不再考虑 0px,并应用单元格之间的默认 10px..

我尝试实现以下方法但结果相同...

- (CGFloat)collectionView:(UICollectionView *)collectionView 
           layout:(UICollectionViewLayout*)collectionViewLayout 
           minimumLineSpacingForSectionAtIndex:(NSInteger)section {
    return 0.0;
}
  • 这是一个错误吗?
  • 在不同宽度的UICollectionViewCells 之间获得 0px 间距的“技巧”是什么?

【问题讨论】:

    标签: uicollectionview uicollectionviewcell uicollectionviewlayout


    【解决方案1】:
    1. 这是一个错误吗? 没有
      这不是错误,它是UICollectionViewFlowLayout 的默认行为。流式布局是一种换行布局,这意味着它会将所有单元格沿一条直线放置并在屏幕上排列。一旦它填满一行(没有新项目的空间),它将打破这一行并进入下一个。 UICollectionViewFlowLayout 保证 minimumLineSpacing 不准确。如果您的项目大小不同,则流程布局以保持最小行距的方式排列单元格。所以线的大小可能会增加,但绝不会低于您之前设置的值。

    2. 我认为流式布局不可能,您应该使用一种自定义布局。检查this我不确定是否可以将间距设置为零试试
      JSPrintDemo

    【讨论】: