gpt4 book ai didi

ios - UICollectionViewFlowLayout 与子类化 UICollectionViewLayout

转载 作者:技术小花猫 更新时间:2023-10-29 10:26:11 27 4
gpt4 key购买 nike

我知道记录在案的建议是,如果您正在做任何“例如网格或基于行的中断布局”,请使用 UICollectionViewFlowLayout。但是,我不确定我的情况是否如此。

我想要一个网格,但想要一个换行布局。项目应该在水平和垂直方向上无限放置,不要堆叠。本质上是一个巨大的棋盘,如果内容超出框架,它会水平或垂直滚动​​。

要将 UICollectionViewFlowLayout 子类化,我必须:

  1. 重写 prepareLayout 以停止布局包装项目。这看起来工作量很大。
  2. 覆盖 collectionViewContentSize

Apple 表示他们在制作 UICollectionViewFlowLayout 方面做了“很多艰苦的工作”,所以我应该尽可能利用它。但是,如果我必须重写 prepareLayout 以关闭换行,我怀疑我正在丢弃他们的大部分工作。他们剩下的工作中,我可能不会用到大部分(例如,minimumLineSpacingForSectionAtIndex)。

因为我想要的布局非常简单,所以我怀疑我应该改为继承 UICollectionViewLayout,因为:

  1. 我将有一个更简单、更清晰的实现,所有内容都在一个布局类中,而不是分布在子类和委托(delegate)之间。
  2. 我认为这不会比子类化 UICollectionViewFlowLayout 难多少,因为在这两种情况下我都必须重写 prepareLayout,而且我怀疑这就是所有问题所在艰苦的工作将是。
  3. 与尝试在 UICollectionViewFlowLayout 子类之上添加其他组件相比,我可以更好地以自定义方式调整其他 UICollectionViewLayoutAttributes。

我的结论正确吗?

最佳答案

UICollectionViewFlowLayout 不能支持两个方向,它只能沿着一个轴滚动,水平或垂直。所以你必须继承 UICollectionViewLayout 而不是 UICollectionViewFlowLayout

然后你必须按照你说的正确覆盖prepareForLayout, layoutsAttributesForElementsInRect 方法..

关于ios - UICollectionViewFlowLayout 与子类化 UICollectionViewLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449283/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com