UICollectionView,UICollectionViewFlowLayout:不同的单元格宽度和单元格之间定义的相同间距

fvi*_*cot 3 uicollectionview uicollectionviewcell uicollectionviewlayout

我已经重载了UICollectionViewFlowLayout一个包含UIImages在每个中的单个水平行滑块UICollectionViewCell.

在重载中UICollectionViewFlowLayout,我将其设置minimumLineSpacing为0以获得之间没有间距UICollectionViewCells.(默认为10px)

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

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

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

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

Ani*_*ese 5

  1. 这是一个错误吗?
    这不是错误,它是默认行为UICollectionViewFlowLayout.流布局是一种换行布局,意味着假设它将所有单元格沿直线放置并将其排列在屏幕上.一旦它填满一行(没有新项目的空间),它将打破该行并继续下一行.UICollectionViewFlowLayout确保minimumLineSpacing不确切.如果您的项目大小不同,则流布局会以保持最小行间距的方式排列单元格.因此,行大小可能会增加,但永远不会比您之前设置的值更低.

    在此输入图像描述

  2. 我不认为流布局是可行的,你应该使用一个自定义布局.检查这个 iam不确定你可以将间距设置为零试试
    JSPrintDemo