У меня есть подкласс UICollectionViewLayout
, который помещает ячейки в круг.
layout возвращает YES
для вызова shouldInvalidateLayoutForBoundsChange:
. На
вращение, ячейка в исходном положении исчезает, а ячейка в финале
положение исчезает.
Добавив в мой макет следующий код, я могу отключить затухания и Кажется, что круг элементов просто вращается с изменением ориентации:
- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
return nil;
}
- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
return [self layoutAttributesForItemAtIndexPath:itemIndexPath];
}
Почему методы вызываются при изменении границ, потому что документация не кажется, предлагают, что они делают? Документация, похоже, утверждает, что они называются связанными для вставки и удаления элементов из представления коллекции.
Есть ли лучший способ отключить перекрестное замирание во время вращения?
Примечания:
- Документация
initialLayoutAttributesForAppearingItemAtIndexPath:
заявляет, что по умолчанию метод возвращаетnil
, но вызывает возвратsuper
non-nil. - Я установил символические точки разрыва в методах UICollectionView
deleteItemsAtIndexPaths:
,moveItemAtIndexPath:toIndexPath:
иinsertItemsAtIndexPaths:
, и ни один из них не попадает во время вращения.