我正在尝试实现一个收集视图,在该视图中必须从API数据加载图像。这里的挑战是我的集合视图是2列网格,如果图像数是奇数,则第一个单元格应跨满整行。这是我想要的设计模型
所以按照样机
我正在按照本教程创建网格视图,但是不知道如何在模型中实现设计
https://www.raywenderlich.com/136159/uicollectionview-tutorial-getting-started
任何帮助将不胜感激。预先感谢。
答案 0 :(得分:2)
您可以仅检查所拥有的物品数量,然后根据是否为奇数设置大小。如果是奇数,并且您只希望每三个中的第一个项目较大,则还可以通过除以3来检查其余项。这是示例。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if collectionView.numberOfItems(inSection: 0) % 2 == 0 {
return CGSize(width: (collectionView.frame.size.width - 5) / 2, height: (collectionView.frame.size.width - 5) / 2)
}
let remaider = (Double(indexPath.item)/3).truncatingRemainder(dividingBy: 1)
if remaider == 0 {
return CGSize(width: self.collectionView.frame.size.width, height: self.collectionView.frame.size.width)
}
return CGSize(width: (collectionView.frame.size.width - 5) / 2, height: (collectionView.frame.size.width - 5) / 2)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 5
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 5
}