如何增加细胞高度。此外,我正在从故事板增加单元格高度,但它不起作用。 注意:(只有我想增加什么是新的细胞高度)
代码: -
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if let flowLayout = collectionview.collectionViewLayout as? UICollectionViewFlowLayout {
let horizontalSpacing = flowLayout.scrollDirection == .vertical ? flowLayout.minimumInteritemSpacing : flowLayout.minimumLineSpacing
let cellWidth = (view.frame.width - max(0, numberOfCellsPerRow - 1)*horizontalSpacing)/numberOfCellsPerRow
flowLayout.itemSize = CGSize(width: cellWidth, height: cellWidth)
}
return CGSize(width: (self.view.frame.width - 8) / 3.0 , height: (self.view.frame.width - 8) / 3.0)
}
答案 0 :(得分:1)
sizeForItemAt
。这段代码:
if let flowLayout = collectionview.collectionViewLayout as? UICollectionViewFlowLayout {
let horizontalSpacing = flowLayout.scrollDirection == .vertical ? flowLayout.minimumInteritemSpacing : flowLayout.minimumLineSpacing
let cellWidth = (view.frame.width - max(0, numberOfCellsPerRow - 1)*horizontalSpacing)/numberOfCellsPerRow
flowLayout.itemSize = CGSize(width: cellWidth, height: cellWidth)
}
看起来它属于viewDidLoad
,或者只是被调用一次的其他地方。此外,如果我没有弄错的话,当所有项目具有相同的大小时使用设置flowLayout.itemSize
- 因此它不能与sizeForItemAt
实现结合使用(换句话说,我会完全删除它。< / p>
这是最终应用的内容:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: (self.view.frame.width - 8) / 3.0 , height: (self.view.frame.width - 8) / 3.0)
}
因此,要更改给定collectionView
中单元格的高度,只需更改返回的CGSize
中的高度,例如更改为collectionView.frame.height
以适合collectionView
&# 39;身高:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: (self.view.frame.width - 8) / 3.0 , height: collectionView.frame.height)
}