我使用UICollectionView
流委托来实现这一目标,但是我仍然需要删除两个单元格区域中的巨大间距。
我的代码:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if indexPath.row == 0 || indexPath.row == 5 {
return CGSize(width: (getWidth()/2) , height: (getWidth()/2))
}
return CGSize(width: (getWidth()/4) , height: (getWidth()/4))
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
预期:
答案 0 :(得分:1)
无法使用普通UICollectionViewLayout
。 UICollectionViewLayout
本质上是“行制动布局”,行高是其最高元素的高度。请查看以下内容:
Apple docs on using UICollectionViewFlowLayout
但是,可以通过将UICollectionViewFlowLayout
子类化来实现所需的行为。
以下是有关操作方法的指南:
答案 1 :(得分:0)