【发布时间】:2012-11-01 20:21:35
【问题描述】:
据我所知,UICollectionViewFlowLayout 证明了除最后一行之外的所有行。因此,例如,如果没有足够的项目来填充超过 1 行,则结果是不合理的。
对UICollectionViewFlowLayout 进行配置或子类化的最简单方法是什么,这样它也可以证明一节的最后一行?
【问题讨论】:
标签: iphone ios uicollectionview
据我所知,UICollectionViewFlowLayout 证明了除最后一行之外的所有行。因此,例如,如果没有足够的项目来填充超过 1 行,则结果是不合理的。
对UICollectionViewFlowLayout 进行配置或子类化的最简单方法是什么,这样它也可以证明一节的最后一行?
【问题讨论】:
标签: iphone ios uicollectionview
不幸的是,这实际上是不可能的。不幸的是,它不是这样设计的。
我能想到的可能可行的一件事是在数据源中添加一个额外的项目,在最后返回,它有一个 0 像素高的单元格和集合视图的宽度。这将强制最后一行成为单行,上面只有一个项目,然后它上面的所有行都将是合理的。
【讨论】:
(width of collection view) - (left and right content inset) - (left and right section inset)。
您可以通过继承 UICollectionViewFlowLayout 并覆盖 layoutAttributesForElementsInRect: 和 layoutAttributesForItemAtIndexPath: 来实现此目的,通过更改 frame 属性将所有项目放在最后一行(除了第一行,这已经是正确的)您想要的位置项目的 UICollectionViewLayoutAttributes 对象。
【讨论】: