每隔一行UICollectionView间距不正确

时间:2015-07-17 00:30:33

标签: ios swift uicollectionview uicollectionviewlayout

我正在为UICollectionView创建自定义流布局,我正在努力使间距正确。尽管每隔一行设置minimumLineSpacing = 2,但每行图像之间只有1像素,如here所示。我相信这是因为Apple现在使用的是点而不是像素,但是你如何解决这个问题呢?这是我在CollectionViewController中设置流程布局的代码:

    let screenWidth = self.collectionView?.bounds.size.width
    let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()

    flowLayout.minimumInteritemSpacing = 2
    flowLayout.minimumLineSpacing = 2

    let totalSpacing = flowLayout.minimumInteritemSpacing * 4.0
    let imageSize = (screenWidth!-totalSpacing)/4.0

    flowLayout.itemSize = CGSize(width: imageSize, height: imageSize)

1 个答案:

答案 0 :(得分:1)

我明白了。如果单元格的高度是重复浮点数,则每行之间的间距将交替,每隔一行。例如,如果我想要在每个单元格之间放置2个点间距的三个单元格,则每个单元格在iPhone 6上将为123.6666666667点宽。(iPhone 6为375点,导致计算(375-4)/ 3 = 123.6666666667)。如果我继续使用与宽度相同的高度值,则点的最后2/3将导致行的间距交替,如here所示。

我发现,单元格高度不一定是int来解决这个问题;设置它说123.5将解决这个问题,但当然也会有效。