【问题标题】:Display 3 items per row in UICollectionView在 UICollectionView 中每行显示 3 个项目
【发布时间】: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?
  • 是的,刚刚想通了。感谢您的提示。

标签: ios swift uicollectionview


【解决方案1】:

很可能,您不能设置集合视图的minimumInteritemSpacing

故事板: 转到故事板并选择您的收藏视图。在属性或比例选项卡中,您将看到 Min Spacing 将其设置为 0 以显示 3 个没有间距的单元格。

以编程方式:

let obj = UICollectionViewFlowLayout()
          obj.minimumInteritemSpacing = 0
          obj.minimumLineSpacing = 0

然后用上面的布局实例化 UICollectionView。

此外,您将集合视图宽度除以 3,这意味着您不希望单元格之间有任何间距(如果您想要一些空间,请将间距乘以 2,从宽度中减去,然后除以 3)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 2021-08-26
    • 2018-02-14
    相关资源
    最近更新 更多