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