Hi,
This is my dataSource
for UICollectionView
var dataSource = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"]
I am trying to do a staggered layout like shown in the pic below:
My numberOfRows
are fixed as 3
Second Row should contain one element more than the first and third. count
of dataSource
will always be 3n+1.
I used a small hack and got this layout below:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if indexPath.item == 1{
return CGSize(width: 100, height: 100)
}
return CGSize(width: 180, height: 100)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
if section == dataSource.count - 1{
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
} else{
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -70)
}
}
question from:
https://stackoverflow.com/questions/65914344/staggered-layout-in-uicollectionview-ios-10-and-above-ios-swift 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…