В качестве теста я сделал один макет, который отображает ячейки в вертикальной линии, а другой, который отображает их в горизонтальной компоновке. Когда я вызываю [collectionView setCollectionViewLayout:layout animated:YES];
, он очень хорошо анимирует между двумя позициями.
Теперь, когда я хотел бы сделать это, у всех взглядов есть несколько спинов, перекосов и переворачиваний по экрану (возможно, с использованием CAKeyframeAnimations), прежде чем, наконец, добраться до места назначения, но я не могу найти подходящее место для подключения это в.
Я попытался подклассифицировать UICollectionViewLayoutAttributes
, чтобы содержать свойство анимации, а затем установить эти анимации в переопределенном методе applyLayoutAttributes:
используемого UICollectionViewCell
. Это работает... ЗА ИСКЛЮЧЕНИЕМ, похоже, происходит только после завершения перехода макета. Если бы я хотел использовать это, мне нужно было бы, чтобы макет не менял текущие позиции объектов сразу, только после того, как он достигнет этого атрибута, часть кода, и это похоже на большую работу...
Или я мог бы подклассом UICollectionView
и переопределить setCollectionViewLayout:animated:
, но это также похоже на много состояний, чтобы поддерживать между макетами. Ни один из этих оптиков не кажется правильным, потому что существует такой простой способ оживить добавления/удаления ячеек в макете. Я чувствую, что должно быть что-то подобное для подключения к анимации между макетами.
Кто-нибудь знает лучший способ получить то, что я ищу?