UICollectionView细胞之间的奇怪差距(Swift)

时间:2016-08-29 05:18:05

标签: swift uicollectionview

我试图在3列中显示2段图像。出于某种原因,某些单元格之间存在这些奇怪的间隙。我在故事板中到处都是,一切看起来都是正确的。我还尝试将列设置为2,4,5,6等等。没有奇怪的白线,列设置为任何其他数字。这些行显示在5S模拟器和我的物理iPhone 5S上。

Simulator Screenshot

override func viewDidLoad() {
    super.viewDidLoad()

    let width = CGRectGetWidth(collectionView!.frame) / 3
    let layout = collectionViewLayout as! UICollectionViewFlowLayout
    layout.itemSize = CGSize(width: width, height: width)
}

1 个答案:

答案 0 :(得分:1)

此错误是由您为width执行的浮点计算引起的。

iPhone 5S的宽度为320像素。假设您的collectionView具有与屏幕相同的宽度,则每个单元格的宽度和高度将为320 / 3 = 106.666666667,这是一个重复的小数。

要解决这个问题,我建议使用一个可被3整除的数字,并且对于collectionView宽度,使用小于(且非常接近)320的数字。因此,如果您使用318,则每个单元格的最终宽度和高度将为318 / 3 = 106,这是一个不错的数字!

一般规则:UICollectionView宽度应该可以被每行中的单元格数整除。