【发布时间】:2018-10-21 13:28:45
【问题描述】:
在使用我使用 collectionView 的旧方式后,我现在使用 Apple 代码 sn-p 来处理 collectionView。问题是我无法实现单元格间距的代码,例如,确切的 3 个单元格应该排成一行。
这是我用于单元格间距的旧代码(现在它不起作用,我想知道为什么......)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = collectionView.frame.width / 3 - 1 // number of cells in a row. now it's 3
return CGSize(width: width, height: width)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 1.0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 1.0
}
我怎样才能让一切看起来比现在更好?因为现在连续的单元格数取决于 iPhone 型号。此外,间距也取决于 iPhone 型号。
【问题讨论】:
-
请在您的问题中仅包含相关代码。不要倾倒整个课程,让人们阅读与您所要求的内容无关的代码。请阅读 minimal reproducible example 和 edit 您的问题,并使用演示问题的最小代码
-
@AshleyMills 我说我不知道 Apple 如何处理单元格之间的间距,这就是我将所有代码放在这里的原因。现在我将代码更改为超链接。我不是 Swift 的专业人士,如果我知道代码的哪一部分是错误的,我可能会自己修复它。
-
我认为即使对于非专业开发人员来说,从照片库中获取或缓存资产的代码也不会影响集合视图布局。创建minimal reproducible example 不仅仅是为了我们的利益,通过删除不相关的代码,它会帮助您找出问题所在。请添加与集合视图布局有关的代码,而不是所有其他内容
-
@swiftylifestyle : 你必须继承流布局并覆盖
layoutAttributesForElementsInRect来实现你想要的,网上有很多教程解释了完全相同的解决方案,所以请寻找你的子流布局教程会找到一个 -
@AshleyMills 实际上,您很严格但正确:) 无论如何,我找到了解决方案,所以我发布了完美的答案。另外,我删除了我正在使用的代码,因为它不相关。很抱歉。
标签: ios swift collectionview