在转换过程中使UINavigationBar透明动画

时间:2016-04-05 19:53:38

标签: ios swift animation uinavigationcontroller uinavigationbar

我可以使用以下代码透明的UINavigationBar透明:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
    navigationController!.navigationBar.shadowImage = UIImage()
}

但是如果你试试这个,你会注意到推动动画过渡期间的不良影响。在左屏幕完全消失之前,导航栏立即变为透明。

但另一方面,如果你尝试这个代码......

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    navigationController!.setNavigationBarHidden(true: animated: animated)
}

...动画将是完美的:导航栏仅在右侧屏幕上消失,因此过渡动画看起来很不错。

有没有办法让UINavigationBar透明化,就像在第一个片段中那样具有动画效果,就像在第二个片段中一样?

1 个答案:

答案 0 :(得分:-1)

是的,您需要在代码中创建一个方法,这会延迟您的应用程序打开多少秒,例如:[self performSelector:@selector(delay)withObject:nil afterDelay:5.0];这会在你的应用程序打开时生成,5秒后它将运行你在延迟方法中放置的所有内容。所以,当你想让UINavigationBar变得透明时,我会找到第二个或乱七八糟的东西,你可以很容易地找到使UINavigationBar透明的代码,但我不知道它在我的头脑中。