【发布时间】:2013-01-21 23:51:49
【问题描述】:
我知道记录在案的建议是使用 UICollectionViewFlowLayout 如果您正在做任何“像网格或基于行的中断布局”。但是,我不确定这是否适用于我的情况。
我想要一个网格,但不想要一个换行布局。物品应该在水平和垂直方向上无限地布置,而无需堆叠。本质上是一个巨大的棋盘,如果内容超出框架,它会水平或垂直滚动。
要继承 UICollectionViewFlowLayout 我必须:
- 覆盖
prepareLayout以阻止布局包装项目。这似乎需要做很多工作。 - 覆盖
collectionViewContentSize。
Apple 表示他们在制作 UICollectionViewFlowLayout 方面做了“很多艰苦的工作”,所以如果可以的话,我应该利用它。但是如果我必须覆盖prepareLayout 来关闭换行,我怀疑我正在丢掉他们的大部分工作。在他们剩下的工作中,我可能不会使用其中的大部分(例如,minimumLineSpacingForSectionAtIndex)。
因为我想要的布局太简单了,所以我怀疑我应该继承 UICollectionViewLayout,因为:
- 我将有一个更简单、更清晰的实现,所有内容都在一个布局类中,而不是在子类和委托之间分散。
- 我认为这不会比继承 UICollectionViewFlowLayout 更难,因为在这两种情况下我都必须覆盖
prepareLayout,我怀疑这就是所有艰苦工作的所在. - 与尝试在 UICollectionViewFlowLayout 子类之上添加另一个组件相比,我可以更好地以自定义方式调整其他 UICollectionViewLayoutAttributes。
我的结论正确吗?
【问题讨论】:
标签: ios uicollectionview uicollectionviewlayout