Irgendwelche Ideen, wie ich die Tatsache beheben kann, dass meine UICollectionView beim Scrollen beim Drehen abstürzt?
Ich verwende den folgenden Ansatz zum Scrollen und Drehen separat, und beide scheinen gut zu funktionieren. Ich habe gerade bemerkt, dass wenn ich beide Dinge gleichzeitig mache, ich diesen Absturz bekommen kann. Es scheint also etwas damit zu tun zu haben, dass wenn ich das Gerät rotiere und die neuen Layoutattribute in prepareLayout berechnet werden, dass das fortlaufende Scrolling "invalidateLayoutWithContext (invalidContext)" auslöst (siehe unten).
Ideen? Gibt es eine Möglichkeit, Scroll-Antworten während der Rotation zu halten (oder zu ignorieren)?
Rotationsansatz In viewWillLayoutSubviews im View-Controller mache ich das ganze Layout ungültig
%Vor%Scrollender Ansatz Damit ich eine "klebrige" dekorative Ansicht (Kopfzeile) habe, mache ich das ganze Layout nicht ungültig, da es die Leistung zerstört, aber Folgendes tun. In der Layoutklasse überschreibe ich shouldInvalidateLayoutForBoundsChange
%Vor%Beachten Sie, dass ich die dekorative Ansicht (Kopfzeile) ungültig mache, während der Fehler beim Absturz darin besteht, dass meine zusätzlichen Ansichtslayouts unterschiedlich sind.
Fehler
2015-10-30 07: 14: 30.181 test3_collectionview [17086: 3102132] * Assertionsfehler in - [UICollectionViewData validateLayoutInRect:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.29.5/UICollectionViewData.m:408 2015-10-30 07: 14: 30.185 test3_collectionview [17086: 3102132] * Beenden einer App aufgrund einer nicht abgefangenen Ausnahme 'NSInternalInconsistencyException', Grund: 'Layoutattribute für Zusatzelement im Indexpfad ({length = 2, Pfad = 0 - 0}) geändert von Index Pfad: ({Länge = 2, Pfad = 0 - 0}); Element Art: (Dekorativ1); Rahmen = (0 1085,5; 320 16); zIndex = 1; zu Index Pfad: ({Länge = 2, Pfad = 0 - 0}); Element Art: (Dekorativ1); Rahmen = (0 853,5; 320 16); zIndex = 1; ohne das Layout ungültig machen ' *** Erster Aufrufstapel:
Tags und Links ios uicollectionview uicollectionviewlayout