UICollectionView flowLayout nie opakowuje poprawnie komórek

mamUICollectionView z FLowLayout. Będzie działał tak, jak oczekuję przez większość czasu, ale co jakiś czas jedna z komórek nie zawija się prawidłowo. Na przykład komórka, która powinna być włączona w pierwszej „kolumnie” trzeciego wiersza, jeśli rzeczywiście kończy się w drugim wierszu, a jest tylko pusta przestrzeń, w której powinna się znajdować (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. Gdy to się stanie, mogę przewinąć w górę, a następnie z powrotem, a komórka sama się naprawi. Lub, gdy nacisnę komórkę (która popycha mnie do następnego widoku), a następnie cofam się, zobaczę komórkę w niewłaściwej pozycji, a następnie przeskoczę do właściwej pozycji.

Wydaje się, że prędkość przewijania ułatwia odtworzenie problemu. Kiedy przewijam powoli, wciąż widzę celę w niewłaściwej pozycji co jakiś czas, ale od razu przeskoczy ona do właściwej pozycji.

Problem zaczął się, gdy dodałem wstawki sekcji. Wcześniej komórki były prawie wyrównane w stosunku do granic zbierania (małe lub brak wstawek) i nie zauważyłem problemu. Ale to oznaczało, że prawy i lewy widok kolekcji był pusty. To znaczy, nie mógł przewijać. Ponadto pasek przewijania nie był wyrównany do prawej strony.

Mogę sprawić, że problem wystąpi zarówno na symulatorze, jak i na iPadzie 3.

Myślę, że problem występuje z powodu wstawek lewej i prawej sekcji ... Ale jeśli wartość jest błędna, to spodziewam się, że zachowanie będzie spójne. Zastanawiam się, czy to może być błąd z Apple? A może jest to spowodowane nagromadzeniem wypustek lub czymś podobnym.

Zagryźć: Używałemta odpowiedź poniżej Nick przez ponad 2 lata bez problemu (na wypadek gdyby ludzie zastanawiali się, czy w tej odpowiedzi są jakieś dziury - jeszcze nie znalazłem). Dobrze zrobiony Nick.

questionAnswers(11)

yourAnswerToTheQuestion