2012-11-01 22 views
9

O ile widzę, UICollectionViewFlowLayout uzasadnia wszystkie linie sekcji oprócz ostatniej. Na przykład, jeśli nie ma wystarczającej ilości elementów do wypełnienia więcej niż 1 linii, wynik nie jest uzasadniony.Uzasadnij ostatnią linię UICollectionView

enter image description here

Jaki jest najprostszy sposób albo skonfigurować lub podklasa UICollectionViewFlowLayout tak że również uzasadnia ostatnią linię przekroju?

enter image description here

Odpowiedz

4

Można to zrobić przez instacji UICollectionViewFlowLayout i nadrzędny layoutAttributesForElementsInRect: i layoutAttributesForItemAtIndexPath: umieścić wszystkie elementy w ostatniej linii (z wyjątkiem pierwszego, który jest już poprawne), gdzie chcesz je, zmieniając właściwość UICollectionViewLayoutAttributes przedmiotu danego elementu frame .

10

Nie jest to możliwe, niestety. Po prostu nie jest to zaprojektowane w ten sposób.

Jedną rzeczą, która może mi się przydać, jest dodanie dodatkowego elementu do źródła danych, zwróconego na końcu, który ma komórkę o wysokości 0 pikseli i szerokość widoku kolekcji. To zmusi ostatni wiersz do pojedynczego rzędu z tylko jednym elementem, a następnie wszystkie wiersze nad nim będą uzasadnione.

+0

To naprawdę dobre i proste rozwiązanie! dzięki! – dowi

+1

Szerokość dodatkowego elementu powinna wynosić '(szerokość widoku kolekcji) - (lewy i prawy insert zawartości) - (wstawka lewej i prawej strony)'. – Pang

+0

upvote due .. proste rozwiązanie tego błędu –

Powiązane problemy