Переход к прозрачной UINavigationBar (Apple Music, как панель навигации)

Я пытаюсь скопировать переход push / pop приложения iOS Music из полупрозрачного в прозрачный UINavigationBar, оставляя видимыми UIBarButtonItems. Поскольку панель навигации не перемещается сама по себе, я считаю, что вам нужно установить прозрачный UINavigationBar для обоих контроллеров UIViewController и добавить подпредставление к контроллеру UIViewController под прозрачным UINavigationBar для имитации полупрозрачного UINavigationBar. Какие-нибудь решения для этой проблемы?

iOS Music приложение переход

2 ответа

Решение

На ваших реквизитах контроллер поставить этот код

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
    })
}
Другие вопросы по тегам