Я выполняю пакетные обновления внутри блока анимации, и когда они выполняются, обрабатывается информация о новом макете. Однако я испытываю проблему, когда новая информация о макете немедленно отображается без анимации, пока обновления корректно анимируются.
До сих пор я обнаружил, что аннулирование макета непосредственно перед блоком анимации помогает, но я иногда получаю странную информацию артефакты из представления коллекции, по сути, делают его макет недействительным несколько раз.
// collectionViewLayout.invalidateLayout()
let animator = UIViewPropertyAnimator(duration: 9, dampingRatio: 1, animations: {
self.collectionView.performBatchUpdates({
self.collectionView.deleteItems(at: updates[0])
self.collectionView.reloadItems(at: updates[1])
self.collectionView.insertItems(at: updates[2])
})
})
animator.startAnimation()