Ril*_*Dev 2 uinavigationbar ios swift
我试图改变UINavigationBar.barTintColor从UIColor.clearColor()以whiteColor()用户滚动的时候,还变回清除,当用户滚动返回到视图的顶部。
这就是我一直在尝试的东西;
ViewDidLoad
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor()
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
self.navigationController?.navigationBar.barTintColor = UIColor.clearColor()
Run Code Online (Sandbox Code Playgroud)
scrollViewDidScroll
override func scrollViewDidScroll(scrollView: UIScrollView) {
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.backgroundColor = UIColor.whiteColor()
self.navigationController?.navigationBar.tintColor = UIColor.redColor()
self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,有人知道我如何才能实现所追求的效果吗?
最简单的解决方案:
func scrollViewDidScroll(scrollView: UIScrollView) {
if (scrollView.contentOffset.y > 0) {
self.navigationController?.navigationBar.backgroundColor = UIColor.whiteColor()
self.navigationController?.navigationBar.tintColor = UIColor.redColor()
self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()
} else {
self.navigationController?.navigationBar.backgroundColor = UIColor.clearColor()
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
self.navigationController?.navigationBar.barTintColor = UIColor.clearColor()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |