Я пытаюсь создать интерактивную анимацию для переключения режима отображения панели навигации при прокрутке содержимого представления таблицы в методе scrollViewDidScroll (_ scrollView: UIScrollView) . Ниже приведен фрагмент кода, использующий UIViewPropertyAnimator и результат выполнения кода.
private lazy var animator: UIViewPropertyAnimator = {
return UIViewPropertyAnimator(duration: 0.25, curve: .easeInOut)
}()
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if canTransitionToLarge && scrollView.contentOffset.y <= 0 {
animator.addAnimations {
self.navBar.items?.last?.largeTitleDisplayMode = .always
self.navBar.layoutIfNeeded()
self.view.layoutIfNeeded()
}
animator.startAnimation()
canTransitionToLarge = false
}
else if !canTransitionToLarge && scrollView.contentOffset.y > 0 {
animator.addAnimations {
self.navBar.items?.last?.largeTitleDisplayMode = .never
self.navBar.layoutIfNeeded()
self.view.layoutIfNeeded()
}
animator.startAnimation()
canTransitionToLarge = true
}
}
Результат выполнения кода
Какие изменения следует изменить сделать в код, чтобы получить интерактивную анимацию, как в видео ниже?
интерактивная анимация