Может работать, но опасно: установить преобразование для объекта CALayer UINavigationBar. Преобразование, которое поворачивает полосу на «-1 * M_PI_2», будет почти правильным, вам может понадобиться перевести его на несколько пикселей, чтобы получить правильную позицию.
Определенно работает, но больше усилий: визуализируйте пользовательскую панель навигации, реализуйте протокол делегирования из UINavigationController, слушайте изменение навигации и реализуйте свои собственные анимации внутри обратных вызовов.
(я сделал последний метод для предоставления пользовательских UINavigationBars - он отлично работает)
Единственное предостережение с последним методом заключается в том, что ваша анимация может приостановиться / задержаться, потому что по умолчанию они ждут завершения друг друга. Если вы посмотрите на анимацию UIView, есть настройка, которая говорит: «Воспроизвести немедленно, даже если другие анимации выполняются», и вам может потребоваться установить значение YES
.