我试图在3列中显示2段图像。出于某种原因,某些单元格之间存在这些奇怪的间隙。我在故事板中到处都是,一切看起来都是正确的。我还尝试将列设置为2,4,5,6等等。没有奇怪的白线,列设置为任何其他数字。这些行显示在5S模拟器和我的物理iPhone 5S上。
override func viewDidLoad() {
super.viewDidLoad()
let width = CGRectGetWidth(collectionView!.frame) / 3
let layout = collectionViewLayout as! UICollectionViewFlowLayout
layout.itemSize = CGSize(width: width, height: width)
}
答案 0 :(得分:1)
此错误是由您为width
执行的浮点计算引起的。
iPhone 5S的宽度为320像素。假设您的collectionView
具有与屏幕相同的宽度,则每个单元格的宽度和高度将为320 / 3 = 106.666666667
,这是一个重复的小数。
要解决这个问题,我建议使用一个可被3整除的数字,并且对于collectionView
宽度,使用小于(且非常接近)320的数字。因此,如果您使用318,则每个单元格的最终宽度和高度将为318 / 3 = 106
,这是一个不错的数字!
一般规则:UICollectionView宽度应该可以被每行中的单元格数整除。