2016-09-19 9 views
1

このトリックは、もはやiOSの10で動作します: "ステータスバー"IOS 10でステータスバックグラウンドカラーを設定するにはどうすればよいですか?

guard let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else { 

"statusBarWindow" 作品ではなく、 ***キャッチされていない例外 'NSUnknownKeyException'、理由: '[< _SwiftValue 0x60800049a9a0> valueForUndefinedKey:]のためにアプリケーションを終了しています:このクラスはキーstatusBarのキー値に符合していません。

私は迅速な3つの答えを探しています。ありがとう。

答えて

11

私は、同じサイズの ステータスバーの下に色のUIViewを追加することによって、iOSの10 /スウィフト3でこれを行うことができた

let statWindow = UIApplication.shared.value(forKey:"statusBarWindow") as! UIView 
    let statusBar = statWindow.subviews[0] as UIView 
    statusBar.backgroundColor = UIColor.red //your required color 
+1

それは動作します!よくやった! – danko9

+0

それが動作する場合は、私の答えを受け入れてください。 –

+0

これは、iOS 10で背景を変更するのにはうまくいきましたが、このコードをviewWillAppearに入れても、全体的な効果があるようでした。つまり、他のビューに戻ると、変更された背景色が残ります。私は、ビューを表示した後、背景色を元に戻す方法や、一時的な方法で背景色を変更する方法を試しています。 – Natalia

1

...このコードを試してみてください。私はこれらの行を入れますviewWillAppear()

let statusView = UIView(frame: CGRect(x: 0, y: 0, width:  self.view.bounds.width, height: 20)) 
statusView.backgroundColor = sitchOffWhite.withAlphaComponent(0.45) 
self.view.addSubview(statusView) 
関連する問題