Ich habe ein UICollectionView
mit einem FLowLayout. Es wird die meiste Zeit so funktionieren, wie ich es erwartet habe, aber hin und wieder wird eine der Zellen nicht richtig gewickelt. Zum Beispiel die Zelle, die sich in der ersten "Spalte" der dritten Zeile befinden sollte, wenn sie tatsächlich in der zweiten Zeile nachläuft und nur ein leerer Bereich vorhanden ist, in dem sie sich befinden sollte (siehe Abbildung unten). Alles, was Sie von dieser Rougezelle sehen können, ist die linke Seite (der Rest ist abgeschnitten) und die Stelle, an der sie sein sollte, ist leer.
Dies geschieht nicht konsequent; Es ist nicht immer dieselbe Zeile. Sobald es passiert ist, kann ich nach oben und dann zurück scrollen und die Zelle hat sich selbst repariert. Wenn ich auf die Zelle drücke (die mich per Push zur nächsten Ansicht bringt) und dann zurückspringe, sehe ich die Zelle an der falschen Position und springe dann zur richtigen Position.
Die Bildlaufgeschwindigkeit scheint es einfacher zu machen, das Problem zu reproduzieren. Wenn ich langsam scrolle, sehe ich immer noch hin und wieder die Zelle an der falschen Position, aber dann springt sie sofort an die richtige Position.
Das Problem begann, als ich die Abschnitte einfügte. Zuvor hatte ich die Zellen fast bündig mit den Sammlungsgrenzen (wenig oder keine Einfügungen) und ich bemerkte das Problem nicht. Dies bedeutete jedoch, dass rechts und links von der Sammlungsansicht leer war. Dh konnte nicht scrollen. Außerdem war die Bildlaufleiste nicht bündig nach rechts.
Ich kann das Problem sowohl auf dem Simulator als auch auf einem iPad 3 lösen.
Ich denke, das Problem tritt aufgrund der Einfügungen im linken und rechten Abschnitt auf ... Aber wenn der Wert falsch ist, würde ich erwarten, dass das Verhalten konsistent ist. Ich frage mich, ob dies ein Fehler bei Apple sein könnte. Oder vielleicht liegt dies an einem Aufbau der Einsätze oder Ähnlichem.
Follow-up : Ich verwende diese Antwort von Nick seit über 2 Jahren ohne Probleme (falls sich die Leute fragen, ob diese Antwort Lücken enthält - ich habe noch keine gefunden). Gut gemacht, Nick.