2017-04-17 6 views
0

私はUINavigationBarのサブクラスを持っています。 barTintColorをこのサブクラスに設定するにはどうすればよいですか?UINavigationBarサブクラスからbarTintColorを設定する方法

class NavBar: UINavigationBar { 

    override func sizeThatFits(_ size: CGSize) -> CGSize { 
     return CGSize(width:UIScreen.main.bounds.width, height: 66) 
    } 

} 

答えて

1

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) 
    } 
} 
+0

ありがとうございました、実際に動作します! – Edgar

0

私はそれがUINavigationControllerをサブクラス化し、そこからbarTintColorを設定することで動作させることができた:

class NavBarVC: UINavigationController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.navigationBar.barTintColor = UIColor.someColor 
    } 
} 

EDITは:最後に、私は、@ dirtydaneeの答えからのソリューションを使用していました。したがって、私はUINavigationControllerをサブクラス化する必要はありません。

関連する問題