在 UICollectionView 中每行显示 3 个项目
Posted
技术标签:
【中文标题】在 UICollectionView 中每行显示 3 个项目【英文标题】:Display 3 items per row in UICollectionView 【发布时间】:2021-05-03 16:51:41 【问题描述】:我试图在集合视图中每行显示 3 个项目,但它始终显示 2 个项目。我已经阅读了一些关于这个主题的教程,但不知道我还需要做什么。故事板中是否缺少某些内容?如何解决?
extension HomeViewController: UICollectionViewDelegateFlowLayout
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath ) -> CGSize
let widthPerItem = collectionView.bounds.width/3.0
return CGSize(width: widthPerItem, height: widthPerItem)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets
return UIEdgeInsets.zero
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
【问题讨论】:
您是否将collectionView 估计大小设置为none? 是的,刚刚想通了。感谢您的提示。 【参考方案1】:很可能,您不能设置集合视图的minimumInteritemSpacing
。
故事板: 转到故事板并选择您的收藏视图。在属性或比例选项卡中,您将看到 Min Spacing 将其设置为 0 以显示 3 个没有间距的单元格。
以编程方式:
let obj = UICollectionViewFlowLayout()
obj.minimumInteritemSpacing = 0
obj.minimumLineSpacing = 0
然后用上面的布局实例化 UICollectionView。
此外,您将集合视图宽度除以 3,这意味着您不希望单元格之间有任何间距(如果您想要一些空间,请将间距乘以 2,从宽度中减去,然后除以 3)。
【讨论】:
以上是关于在 UICollectionView 中每行显示 3 个项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UICollectionView 中每行显示 3 个单元格?
UICollectionView 水平分页仅在第一页上每行显示 3 个单元格