Jaki jest najlepszy najlepszy sposób na wyłączenie przenikania krzyżowego na UICollectionView / UICollectionViewLayout obraca lub ogranicza zmiany?

Mam podklasęUICollectionViewLayout który umieszcza komórki w okręgu. Układ powracaYES na połączenieshouldInvalidateLayoutForBoundsChange:. Po obróceniu komórka w początkowej pozycji zanika, a komórka w końcowej pozycji zanika.

Dodając poniższy kod do mojego układu mogę wyłączyć zaniki, a krąg elementów wydaje się po prostu obracać ze zmianą orientacji:

- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
    return nil;
}

- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
    return [self layoutAttributesForItemAtIndexPath:itemIndexPath];
}

Dlaczego metody są wywoływane przy zmianie granic, ponieważ dokumentacja nie wydaje się sugerować, że tak się dzieje? Dokumentacja wydaje się określać, że są wywoływani w związku z wstawianiem i usuwaniem elementów z widoku kolekcji.

Czy jest lepszy sposób na wyłączenie efektu cross fade podczas rotacji?

Uwagi:

TheinitialLayoutAttributesForAppearingItemAtIndexPath: dokumentacja stwierdza, że ​​domyślnie metoda powracanil ale dzwoni dosuper zwrócił wartości inne niż zero.Ustawiam symboliczne punkty przerwania na metodach UICollectionViewdeleteItemsAtIndexPaths:, moveItemAtIndexPath:toIndexPath: iinsertItemsAtIndexPaths: i żaden z nich nie zostaje trafiony podczas obrotu.

questionAnswers(1)

yourAnswerToTheQuestion