あなたはiOS7 +のために開発していると仮定:ステータスバーには、独自の上の任意の背景色を持っている」doesnの。実際には、ナビゲーションバーが表示されているときに暗い背景が表示されているのは、ステータスバーの下に上に向かっているためです。したがって、ステータスバーの背景を保持したい場合は、現在のシーン(viewController、windowなど)に適切な背景色を持つビューを追加するだけです。フレームにUIApplication.sharedApplication.statusBarFrame
を付けてください。
- UPDATE 1から
サンプルコード(SWIFT 3)あなたのベタ黒ステータスバーの背景与える:
class ViewController: UIViewController {
private let statusBarUnderlay = UIView()
override func viewDidLoad() {
super.viewDidLoad()
statusBarUnderlay.backgroundColor = UIColor.black
view.addSubview(statusBarUnderlay)
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
statusBarUnderlay.frame = UIApplication.shared.statusBarFrame
}
}
を - 更新2 -
私たちはそれをしています。上記のコードは、あなたの意見をレイアウトする方法ではありません。代わりに、UIView
のサブクラスを作成し、そこでレイアウトを行います。次にUIViewController
サブクラスのloadView
をオーバーライドし、カスタムビューのインスタンスを返します。
class View: UIView {
private let statusBarUnderlay = UIView()
override init(frame: CGRect) {
super.init(frame: frame)
statusBarUnderlay.backgroundColor = UIColor.black
addSubview(statusBarUnderlay)
}
required init?(coder aDecoder: NSCoder) {
fatalError("Storyboards are incompatible with truth and beauty.")
}
override func layoutSubviews() {
super.layoutSubviews()
statusBarUnderlay.frame = UIApplication.shared.statusBarFrame
}
}
最後の文章では、白い背景を正しく保つことを意味しますか? – hasan83
@ hasan83いいえ、ライトスタイルを使用しているので暗くする必要があります。 –
それを得ました。ナビゲーションバーのスタイルを設定するコードを提供できますか? (あなたが色を設定するために使用したコード) – hasan83