Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从UINavigationBar子类设置barTintColor_Ios_Swift_Uinavigationbar - Fatal编程技术网

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