Ios 如何从UINavigationBar子类设置barTintColor
我有一个子类Ios 如何从UINavigationBar子类设置barTintColor,ios,swift,uinavigationbar,Ios,Swift,Uinavigationbar,我有一个子类UINavigationBar。 如何在此子类中设置BartinColor class NavBar: UINavigationBar { override func sizeThatFits(_ size: CGSize) -> CGSize { return CGSize(width:UIScreen.main.bounds.width, height: 66) } } 您只需要覆盖UINavigationBar的初始值设定项 clas
UINavigationBar
。
如何在此子类中设置BartinColor
class NavBar: UINavigationBar {
override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width:UIScreen.main.bounds.width, height: 66)
}
}
您只需要覆盖
UINavigationBar
的初始值设定项
class NavBar: UINavigationBar {
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
// Change barTintColor to whatever you would like
self.barTintColor = .red
}
override func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width:UIScreen.main.bounds.width, height: 66)
}
}
我通过子类化
UINavigationController
并从中设置barTintColor
使其工作:
class NavBarVC: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationBar.barTintColor = UIColor.someColor
}
}
编辑:最后我使用了@dirtydanee答案中的解决方案。因此,我不需要子类化UINavigationController