UICollectionView
上的奇怪问题...
我UIImageView
低于UICollectionView
,我注意到collectionView
...中某些点出现了多条细线/ 1px清晰线...一条出现在描述单元格下方。 ..
假设这是一个细胞问题,我已经调查过每一个我无法思考的方式。我已将此单元格加倍,以说明问题发生在IndexPath
第1部分和第6项和第7项
即使此单元格加倍...下面的分隔线单元格也是同一section
的一部分,所以它绝对不是页脚或标题???
我的flowLayout是
flowLayout.scrollDirection = .vertical
flowLayout.minimumInteritemSpacing = 0.0
flowLayout.minimumLineSpacing = 0.0
flowLayout.sectionInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)
flowLayout.headerReferenceSize = .zero
flowLayout.footerReferenceSize = .zero
我制作了collectionView
红色的背景来突出问题......我不知道问题是什么。
查看层次结构
更新
将flowLayout.minimumLineSpacing = 0.0
更改为-1.0
'修复了某些地方的问题...为什么这个值在所有单元格中都不会保持准确?并保持在0.0 ??
flowLayout.scrollDirection = .vertical
flowLayout.minimumInteritemSpacing = 0.0
flowLayout.minimumLineSpacing = -1.0
flowLayout.sectionInset = .zero
答案 0 :(得分:9)
我只是去了并解决了......在给予300美元赏金之后数小时......
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
// calculated CGSize...
return CGSize(width:collectionView.bounds.size.width,height:ceil(calculatedHeight)
}
记住@ 2x @ 3x总是 ceil 你的计算单元格... UICollectionViews
无法破解0.5分
答案 1 :(得分:1)
添加@Magoo的答案:
CGSize
结构有时用于表示距离矢量,而不是物理尺寸。作为矢量,其值可以是负数。要标准化CGRect
结构以使其大小由正值表示,请调用标准化函数。
在Swift 2.x中,您需要使用:
return CGSizeMake(width:collectionView.bounds.size.width,height:ceil(calculatedHeight)
从Swift 3开始,您无法再使用CGSizeMake
:
return CGSize(width:collectionView.bounds.size.width,height:ceil(calculatedHeight)
ceil
函数将数字UP舍入到最接近的整数。floor
。答案 2 :(得分:0)
我尝试了所有答案,但没有任何效果。最后,我最终调整了我的 collectionView 宽度,使单元格的数量均匀地划分到其中。
这为我解决了问题。
// Adjust the width of the collectionView, so that our cells divide evenly into it
CGFloat widthModulus = fmod(collectionViewWidth, numberOfCells);
CGFloat newCollectionViewWidth = collectionViewWidth - widthModulus;