【发布时间】:2017-01-05 03:35:09
【问题描述】:
我的应用程序目前包含 2 个 UIViewController VC1 到 VC2。
在 VC1 中是主屏幕,UINavigationBar 上有一个橙色渐变图像
在VC2中有一个半透明的UINavigationBar并在UINavigationBar上设置UIImage
但是当在这两个视图控制器之间导航时,它会出现一个黑色的导航栏,直到转换完成。我已经尝试设置setNavigationBarHidden,但我不想隐藏导航栏,那么如何删除黑色导航栏?
像这样-
在 VC1 中
override func viewWillAppear(animated: Bool) {
if let navController = self.navigationController {
UIGraphicsBeginImageContext(gradientLayer.frame.size)
gradientLayer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIView.animateWithDuration(0.3, animations: {
navController.navigationBar.setBackgroundImage(image, forBarMetrics: .Default)
navController.navigationBar.translucent = false
})
}
}
在 VC2 中
override func viewWillAppear(animated: Bool) {
UIView.animateWithDuration(0.3, animations: {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true
})
}
override func viewWillDisappear(animated: Bool) {
if let navController = self.navigationController {
UIGraphicsBeginImageContext(gradientLayer.frame.size)
gradientLayer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIView.animateWithDuration(0.3, animations: {
navController.navigationBar.setBackgroundImage(image, forBarMetrics: .Default)
navController.navigationBar.translucent = false
})
}
}
【问题讨论】:
标签: ios swift uinavigationbar