我设置了一个带有 FlowLayout 的 UICollectionView,它在垂直或水平方向的单元格之间不留空间。
我一切正常,但在第 2 列和第 3 列之间有一个奇怪的 1px 空间,我不知道为什么!?我已经验证了 1px 的差距在 iOS 模拟器和真实设备上都出现了。有人经历过吗?
我的 UIViewController 是以下各项的委托(delegate)/数据源:
MyViewController 类:UIViewController、UICollectionViewDelegate、UICollectionViewDataSource、UICollectionViewDelegateFlowLayout
我已经实现了必要的功能来删除任何间距(并通过打印语句验证它们正在运行),以及对彼此相邻排列的单元格进行视觉确认:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsetsZero
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
最后,我打印出要返回的单元格的宽度(每个颜色方 block )以验证它是 (view.frame.width/3)
还是 (320/3 )
,即 106.666667
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
var totalHeight: CGFloat = (self.view.frame.width / 3)
var totalWidth: CGFloat = (self.view.frame.width / 3)
println(totalWidth) // this prints 106.666666667
return CGSizeMake(totalWidth, totalHeight)
}
最佳答案
在类似情况下最好避免数字的 double 类型。 使用:
return CGSizeMake(ceil(totalWidth), ceil(totalHeight))
关于ios - UICollectionView 3 列网格,1px 空间?? (包括图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441547/