我知道,如果您正在做任何“像网格或基于行的中断布局”的操作,建议使用UICollectionViewFlowLayout。但是,我不确定这是否适用于我的情况。
我想要一个网格,但是而不是想要一个换行的布局。物品应水平和垂直无限地布置,且不得堆叠。本质上是一个巨大的棋盘,如果内容超出框架,则可以水平或垂直滚动。
要继承UICollectionViewFlowLayout的子类,我必须:
prepareLayout
以停止布局包装项目。这似乎是很多工作。 collectionViewContentSize
。 苹果公司表示,他们在制作UICollectionViewFlowLayout时已经做了很多“艰苦的工作”,因此,如果可以的话,我应该利用它。但是,如果我必须重写
prepareLayout
来关闭换行符,我怀疑我将丢弃他们的大部分工作。在剩下的工作中,我可能还是不会使用其中的大部分内容(例如minimumLineSpacingForSectionAtIndex
)。因为我想要的布局非常简单,所以我怀疑应该改用UICollectionViewLayout子类,因为:
prepareLayout
,并且我怀疑这就是所有艰苦工作的地方。 我的结论正确吗?
最佳答案
UICollectionViewFlowLayout 仍然不能支持两个方向,它只能沿一个轴水平或垂直滚动。因此,您必须子类化 UICollectionViewLayout 而不是 UICollectionViewFlowLayout 。
然后,您必须按照正确的说明重写 prepareForLayout , layoutsAttributesForElementsInRect 方法。
关于ios - UICollectionViewFlowLayout与子类化UICollectionViewLayout,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14449283/