CollectionView 单元格间距
CollectionView Cell spacing
在使用我以前使用 collectionView 的方式后,我现在使用 Apple 代码片段来获取 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 型号。
为了设置间距或要显示的单元格数量,您需要做的就是使用 UICollectionViewDelegateFlowLayout.
这是完美的代码:
extension CollectionViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = collectionView.frame.width / 3 - 1
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
}
此外,在 viewDidLoad 函数中写入 collectionView?.delegate = self。
在使用我以前使用 collectionView 的方式后,我现在使用 Apple 代码片段来获取 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 型号。
为了设置间距或要显示的单元格数量,您需要做的就是使用 UICollectionViewDelegateFlowLayout.
这是完美的代码:
extension CollectionViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = collectionView.frame.width / 3 - 1
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
}
此外,在 viewDidLoad 函数中写入 collectionView?.delegate = self。