我有 collectionView
对 superview 的约束。我想获得 iPhone X 的结果:
但是我明白了:
如何解决?
代码:
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 4
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
cellOffset = 10
cellWidth = (667 / 3) - (cellOffset * 4)
cellHeight = (cellWidth / 2 * 3) + (cellWidth / 2 * 0.65)
return CGSize(width: cellWidth, height: cellHeight)
}
更新
更新
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let sectionInset = collectionView.frame.width / 3.0
let margins = CGFloat(10.0 * 2.0)
let width = (collectionView.frame.width - sectionInset - margins) / 3.0
let height = collectionView.frame.height - 40.0
let collectionViewLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout
collectionViewLayout?.sectionInset = UIEdgeInsets(top: 0, left: 6.0, bottom: 0, right: 6.0)
collectionViewLayout?.minimumInteritemSpacing = 10
collectionViewLayout?.invalidateLayout()
return CGSize(width: width, height: height)
}
结果:
最佳答案
如果你想要横向的 3 个单元格
let cellWidth = ( self.collectionView.frame.width - 2 * cellOffset ) / 3
关于ios - swift:CollectionView 单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51330699/