Переход к прозрачной UINavigationBar (Apple Music, как панель навигации)
Я пытаюсь скопировать переход push / pop приложения iOS Music из полупрозрачного в прозрачный UINavigationBar, оставляя видимыми UIBarButtonItems. Поскольку панель навигации не перемещается сама по себе, я считаю, что вам нужно установить прозрачный UINavigationBar для обоих контроллеров UIViewController и добавить подпредставление к контроллеру UIViewController под прозрачным UINavigationBar для имитации полупрозрачного UINavigationBar. Какие-нибудь решения для этой проблемы?
2 ответа
Решение
Это лучшие репозитории github, которые я нашел:
https://github.com/forkingdog/FDFullscreenPopGesture https://github.com/kingiol/KDInteractiveNavigationController https://github.com/MoZhouqi/KMNavigationBarTransition
На ваших реквизитах контроллер поставить этот код
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
guard self.navigationController?.topViewController === self else {return}
self.transitionCoordinator()?.animateAlongsideTransition({ [weak self](context) in
self?.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self?.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
}, completion: { context in
})
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
guard self.navigationController?.topViewController === self else {return}
self.transitionCoordinator()?.animateAlongsideTransition({ [weak self](context) in
self?.navigationController?.navigationBar.setBackgroundImage(nil, forBarMetrics: UIBarMetrics.Default)
self?.navigationController?.navigationBar.setBackgroundImage(nil, forBarMetrics: .Default)
}, completion: { context in
})
}