Mam plik UICollectionView
z FLowLayout. Przez większość czasu będzie działać tak, jak się spodziewam, ale od czasu do czasu jedna z komórek nie owija się prawidłowo. Na przykład komórka, która powinna znajdować się w pierwszej „kolumnie” trzeciego wiersza, jeśli faktycznie znajduje się na końcu drugiego wiersza, aw miejscu jej umieszczenia jest tylko puste miejsce (patrz diagram poniżej). Wszystko, co widzisz w tej komórce różu, to lewa strona (reszta jest odcięta), a miejsce, w którym powinna być, jest puste.
Nie dzieje się to konsekwentnie; nie zawsze jest to ten sam wiersz. Kiedy to się stanie, mogę przewinąć w górę i z powrotem, a komórka się naprawi. Lub, gdy naciskam komórkę (która przenosi mnie do następnego widoku poprzez naciśnięcie), a następnie cofam, zobaczę komórkę w niewłaściwej pozycji, a następnie przeskoczy do właściwej pozycji.
Wydaje się, że szybkość przewijania ułatwia odtworzenie problemu. Kiedy przewijam powoli, nadal widzę od czasu do czasu komórkę w niewłaściwej pozycji, ale wtedy od razu przeskoczy do właściwej pozycji.
Problem zaczął się, gdy dodałem wstawki sekcji. Wcześniej komórki były prawie równe z granicami kolekcji (małe wstawki lub brak wstawek) i nie zauważyłem problemu. Ale to oznaczało, że prawa i lewa część widoku kolekcji były puste. To znaczy, nie można przewijać. Ponadto pasek przewijania nie był wyrównany w prawo.
Mogę rozwiązać problem zarówno w symulatorze, jak i na iPadzie 3.
Wydaje mi się, że problem występuje z powodu wstawek lewej i prawej sekcji ... Ale jeśli wartość jest nieprawidłowa, spodziewałbym się, że zachowanie będzie spójne. Zastanawiam się, czy to może być błąd w Apple? A może jest to spowodowane nagromadzeniem wypustek lub czymś podobnym.
Kontynuacja : od ponad 2 lat korzystam z poniższej odpowiedzi Nicka bez problemu (na wypadek, gdyby ludzie zastanawiali się, czy w tej odpowiedzi są jakieś dziury - jeszcze żadnej nie znalazłem). Dobra robota, Nick.