iOS
ステータスバーの色を変更する
サーチ…
非UINavigationBarステータスバーの場合
- info.plistで
View controller-based status bar appearance
をYES
-
UINavigationController
含まれていないビューコントローラでは、このメソッドを実装します。
Objective-Cでは:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
スイフトで:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
UINavigationBarステータスバーの場合
UINavigationControllerをサブクラス化し、これらのメソッドをオーバーライドします。
Objective-Cでは:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
スイフトで:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .lightContent
}
代わりに、 UINavigationBar
インスタンスでbarStyle
を設定することもできます。
目的C:
// e.g. in your view controller's viewDidLoad method:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack; // this will give you a white status bar
迅速
// e.g. in your view controller's viewDidLoad method:
navigationController?.navigationBar.barStyle = .black // this will give you a white status bar
UIBarStyle
オプションはdefault
、 black
、 blackOpaque
、 blackTranslucent
です。後者の3つはすべて白いテキストのステータスバーを表示し、最後の2つはバーの不透明度を指定します。
注:ナビゲーションバーの外観は、好きなように変更できます。
ViewControllerのコードを変更できない場合
あなたが間違ったステータスバーの色を持つ(例えば)AwesomeViewControllerを含むライブラリを使用しているなら、これを試すことができます:
let awesomeViewController = AwesomeViewController()
awesomeViewController.navigationBar.barStyle = .blackTranslucent // or other style
ViewControllerの包含について
あなたはUIViewControllerContainment
を使用している場合は、見て価値があるいくつかの他のメソッドがあります。
子viewControllerでステータスバーの表示を制御したい場合(つまり、子が画面の上部に配置されている場合
スウィフトで
class RootViewController: UIViewController {
private let messageBarViewController = MessageBarViewController()
override func childViewControllerForStatusBarStyle() -> UIViewController? {
return messageBarViewController
}
override func viewDidLoad() {
super.viewDidLoad()
//add child vc code here...
setNeedsStatusBarAppearanceUpdate()
}
}
class MessageBarViewController: UIViewController {
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .Default
}
}
アプリケーション全体のステータスバースタイルを変更する
迅速:
ステップ1:
Info.plistに次の属性を追加します:
View controller-based status bar appearance
その値を
NO
下の画像で説明しているように、
ステップ2:
AppDelegate.swiftファイルのdidFinishLaunchingWithOptions
メソッドに次のコードを追加します。
UIApplication.shared.statusBarStyle = .lightContent
または
UIApplication.shared.statusBarStyle = .default
.lightContentオプションは、アプリケーション全体に対してstatusBarの色を白に設定します。
.defaultオプションは、アプリケーション全体に対してstatusBarの色を元の黒色に設定します。
目的 - C:
SWIFTセクションの最初の手順に従ってください。次に、このコードをAppDelegate.mファイルに追加します。
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
または
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];