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