我正在为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)
答案 0 :(得分:1)
我明白了。如果单元格的高度是重复浮点数,则每行之间的间距将交替,每隔一行。例如,如果我想要在每个单元格之间放置2个点间距的三个单元格,则每个单元格在iPhone 6上将为123.6666666667点宽。(iPhone 6为375点,导致计算(375-4)/ 3 = 123.6666666667)。如果我继续使用与宽度相同的高度值,则点的最后2/3将导致行的间距交替,如here所示。
我发现,单元格高度不一定是int来解决这个问题;设置它说123.5将解决这个问题,但当然也会有效。