导语:乔布斯曾提到如果电脑开机速度提升10秒,每年可以少浪费100人的寿命!
如果节省你10秒钟时间,那...
1.导航栏背景色
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.backgroundColor = UIColor.init(red: 28/255.0, green: 31/255.0, blue: 39/255.0, alpha: 1)
lue: 39/255.0, alpha: 1)
注意:此时导航栏高度设置不再是KHeight,而是KHeight - KNavBarHeight,如下图示:
let kHeight_Swift = UIScreen.main.bounds.size.height
let isIphoneX = (kHeight_Swift == 812 || kHeight_Swift == 896)
let kNavBar:CGFloat = isIphoneX ? 88 : 64
self.tableView.frame = CGRect(x: 0, y: 0, width: kWidth_swift, height: kHeight_Swift - kNavBar)
2.导航栏背景色barTintColor
navigationController?.navigationBar.isTranslucent = false
navigationController?.navigationBar.barTintColor = UIColor.init(red: 28/255.0, green: 31/255.0, blue: 39/255.0, alpha: 1)
注意:isTranslucent必须设置为false,否则状态栏navigationBar.barTintColor设置不生效
- 状态栏文字颜色:黑色 .default | 白色 .lightContent
override var preferredStatusBarStyle: UIStatusBarStyle{
return .lightContent
}
4.导航栏标题和返回按钮颜色。注意:设置方法不能放在viewDidLoad方法中,可以放到viewWillAppear或者viewDidAppear中。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//导航栏返回键&标题的颜色
navigationController?.navigationBar.isTranslucent = false
navigationController?.navigationBar.tintColor = .white
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white,NSAttributedString.Key.font: UIFont.systemFont(ofSize: 17, weight: .bold)]
}
5.退出控制器时还原导航栏设置
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.backgroundColor = UIColor.clear
}