我有一个 UICollectionView
单元格大小相等。我想让单元格之间以及单元格与 Collection View 左右两侧的距离都相等,每行 2 个单元格。
每个单元格的内容水平居中,所以我尝试将单元格的宽度设置为 Collection View 宽度的一半:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: eventCollectionView.frame.width/2, height: 111)
}
但这会产生以下结果:
如图所示,两个单元格分别位于宽度的 1/4 和 3/4 处。相反,我希望它们在 1/3 和 2/3 之间,这样它们和边缘之间的空间都是相等的。
有谁知道我将如何做到这一点?
最佳答案
使用下面的代码
fileprivate var defaultspacing: CGFloat = 5
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
var size: CGSize = .zero
let width = (SCREEN_WIDTH - (3 * defaultspacing))/2
size = CGSize(width: width, height: width)
return size;
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsetsMake(self.defaultspacing, self.defaultspacing, 0, self.defaultspacing);
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return self.defaultspacing;
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
{
return self.defaultspacing;
}
关于ios - 等距集合查看单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44149328/