インターネットが接続されている場合、ステータスバーの色が黒に変わり、インターネットが接続されていない場合、色またはステータスバーが赤になり、インターネットが機能しているかどうかを示すために、デバイスのステータスバーの色を変更したいSwiftを使用してアプリケーションを操作する...
あなたのInfo.plist
「コントローラーベースのステータスバーの外観を表示」をブール値に設定する必要があります。
YES
に設定した場合、各View ControllerでpreferredStatusBarStyle
関数をオーバーライドする必要があります。
NO
に設定すると、次を使用してAppDelegate
のスタイルを設定できます。
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
override func viewWillAppear(animated: Bool) {
self.navigationController?.navigationBarHidden = true
//Status bar style and visibility
UIApplication.sharedApplication().statusBarHidden = false
UIApplication.sharedApplication().statusBarStyle = .LightContent
//Change status bar color
let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView
if statusBar.respondsToSelector("setBackgroundColor:") {
statusBar.backgroundColor = UIColor.redColor()
}
}
テスト済みSwift&iOS9
Navigation Controllersを使用する場合、これをviewcontrollerクラスに追加します。
_override func viewDidLoad(){
...
self.navigationController?.navigationBar.barStyle = .Black
}
_
それ以外の場合は、UIViewControllerのpreferredStatusBarStyle()
をオーバーライドします。
_override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
_
より多くの情報を見つけることができます こちら
Swift 2.の場合
これらの方法で試してください
// Get network status
class func hasConnectivity() -> Bool {
let reachability: Reachability = Reachability.reachabilityForInternetConnection()
let networkStatus: Int = reachability.currentReachabilityStatus().value
return networkStatus != 0
}
// change status bar color
var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.blueColor()
navigationBarAppearace.barTintColor = UIColor.blueColor()
tintColor
属性は、ナビゲーションバーの背景色を変更します
barTintColor
属性は、
しかし、runtimeでステータスバーの色を変更したい場合、より良い方法はステータスバーの後ろにビューを追加することだと思います。
Swiftの場合
これはXcode 8およびSwift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
// didFinishLaunchingWithOptionsのAppDelegate.Swift内:UINavigationBar.appearance()。barTintColor = UIColor.greenColor()
//Optionally, if you need a specific color, how you do it with RGB:
UINavigationBar.appearance().barTintColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
or
Info.plistで、「View Controller-based status bar Appearance」をブール値に設定する必要があります。
UIApplication.sharedApplication().statusBarStyle = .LightContent
IOS 7の時点で@rckoenesがコメントしたように、ステータスバーはアプリ上に描画されます。そのため、ステータスバー領域の背後にビューを配置し(上から20ピクセル-ステータスバーの高さ)、インターネット接続のステータスの変更に応じて背景色を制御できます。ステータスバーの色を変更する他のオプションはありません。
黒いステータスバーに白いテキストを表示するには:コントローラーベースのステータスバーの外観を表示を[〜#〜] no [〜#〜] in Info。 plist AppDelegate.SwiftでdidFinishLaunchingWithOptionsにlet statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView statusBar.backgroundColor = UIColor.black
を追加します