Justify last line of UICollectionView

2020-01-29 09:42发布

问题:

As far as I can see, UICollectionViewFlowLayout justifies all the lines of a section except the last one. So for example, if there aren't enough items to fill more than 1 line, the result is not justified.

What is the simplest way to either configure or subclass UICollectionViewFlowLayout so that it also justifies the last line of a section?

回答1:

You can do this by subclassing UICollectionViewFlowLayout and overriding layoutAttributesForElementsInRect: and layoutAttributesForItemAtIndexPath: to place all the items in the last line (except the first, which is already correct) where you want them, by changing the frame property of the item's UICollectionViewLayoutAttributes object.



回答2:

This is not really possible, unfortunately. It's just not designed that way, unfortunately.

One thing I can think of that might work though is to add an extra item into the data source, returned at the end, which has a cell that is 0 pixels tall and the width of the collection view. That will force the last row to be a single row with just that one item on it and then all rows above it will be justified.