gpt4 book ai didi

ios - UICollectionView 3 列网格,1px 空间?? (包括图像)

转载 作者:IT王子 更新时间:2023-10-29 05:17:31 25 4
gpt4 key购买 nike

我设置了一个带有 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)
}

enter image description here

最佳答案

在类似情况下最好避免数字的 double 类型。使用:

return CGSizeMake(ceil(totalWidth), ceil(totalHeight))

关于ios - UICollectionView 3 列网格,1px 空间?? (包括图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com