Анимация переключения CollectionViewLayout - PullRequest
0 голосов
/ 13 марта 2019

В настоящее время я работаю над функцией переключения между 2 различными CollectionViewLayouts для UICollectionView. Переключение работает отлично, макеты используют один и тот же класс ячеек с разными кончиками. Я хотел бы, чтобы они переходили из одного в другое с анимацией (стиль сетки, стиль списка и обратно). В настоящее время у меня уже есть некоторые анимации, интегрированные с использованием фреймворка Hero.

Я хочу добиться того, чтобы изображение, присутствующее в макетах «Список» и «Сетка», анимировалось в новой точке его происхождения, чтобы транзакция выглядела гладко.

Можно ли добиться желаемого поведения с помощью Hero? Я добавил анимацию в ячейку при выборе, которая отлично работает.

Вот код, который я использую для переключения между двумя раскладками

isListView = !isListView
setupCollectionViewCellNib(nibName: collectionItem)
collectionView.collectionViewLayout = isListView ? ListLayout(view: view) : GridLayout(view: view)
collectionView.reloadData()

Я надеюсь, что кто-то может направить меня в правильном направлении, даже если это невозможно сделать с помощью Hero.

1 Ответ

0 голосов
/ 13 марта 2019

UICollectionView имеет функцию setCollectionViewLayout(_ layout: UICollectionViewLayout, animated: Bool)

let layout = isListView ? ListLayout(view: view) : GridLayout(view: view)
collectionView.setCollectionViewLayout(layout, animated: true)
...