В моем приложении у меня есть контроллер просмотра страниц, который позволяет пользователю прокручивать между различными "разделами" приложения, а вверху - в панели навигации. Я меняю текст заголовка на новый раздел, который пользователь нажал через pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
. В настоящий момент он мгновенно меняет текст заголовка, когда анимация завершена. Я хотел бы улучшить это с помощью некоторой анимации, тонкого эффекта затухания и выхода.
Сначала я попытался реализовать [UIView animationWithDuration:...]
для анимации изменения текста заголовка, но он не анимация и просто все еще мгновенно обновляется.
Затем я подумал, можно ли обновить альфа заголовка навигационной панели, когда пользователь прокручивает по горизонтали в зависимости от того, как далеко они прокручиваются, достигая 0 альфа, когда следующий раздел вот-вот появится на экране, затем Я могу мгновенно изменить текст, пока он равен 0, а затем быстро затухает до 1 альфа. Но я не вижу метод UIPageViewControllerDelegate
, который вызывается при обновлении положения прокрутки.
Если возможно, вместо того, чтобы просто затухать и исчезать, я мог бы исчезать, а также перемещать текстовую позицию заголовка в навигационной панели, как и анимация по умолчанию, которая возникает при навигации по нажатию клавиши с помощью жестового салфетки. Я бы сместил старый заголовок раздела, когда пользователь прокручивает и предоставляет следующий заголовок раздела с другой стороны, так что, когда переход завершается, заголовок предыдущего раздела выключен, а новый полностью центрирован, поэтому замена завершается. Но опять же это требует знания точно, сколько пользователь прокрутил контроллер просмотра страницы.
Возможно ли реализовать любую из желаемых анимаций?