iOS7でステータスバーを非表示にする方法
この記事を書いた時の環境はこんな感じ。
環境 | 情報 |
---|---|
iOS | 7.0 |
Xcode | 5.1 |
Date | 2014/03/22 |
下記のそれぞれのパターンを説明します。
- 起動時からずっと非表示にする場合
- 特定の画面だけ非表示にする場合
- プログラムから表示/非表示を切り替える場合
起動時からずっと非表示にする場合
最初から最後まで、ずっとフルスクリーンのアプリを作る場合はこんな感じ。
1. 『Hide during application launch』をチェック
プロジェクト設定の[TARGET] - [General]にある“Deployment Info”で設定します。
これをチェックしておくと、起動画面でステータスバーが表示されなくなります。
『Hide during application launch』チェックすると、アプリ名-info.plistの中のUIStatusBarHiddenがYESに設定されます。
2. 『View controller-based status bar appearance』をNOにする
プロジェクト設定の[TARGET] - [Info]にある“Custom iOS Target Properties”で設定します。デフォルトだと項目が存在しないので、まず、手動で項目を追加。
設定を『NO』にしておきます。
これで、アプリ起動後もステータスバーが表示されなくなります。
『View controller-based status bar appearance』の設定は、アプリ名-info.plistの中のUIViewControllerBasedStatusBarAppearanceに対応します。
特定の画面だけ非表示にする場合
指定した画面だけステータスバーを非表示にする場合はこんな感じ。ViewController単位で指定します。これが一番楽かな。
1. ViewControllerのprefersStatusBarHiddenでYESを返す
ViewControllerにprefersStatusBarHiddenを追加して、YESを返すようにします。
- (BOOL)prefersStatusBarHidden { return YES; }
これだけ。
プログラムから表示/非表示を切り替える場合
プログラムからステータスバーの表示/非表示を切り替える場合はこんな感じ。
1. 『View controller-based status bar appearance』をNOにする
細かい設定方法は、上の方にある『起動時からずっと非表示にする場合』を参照で。
ステータスバーを非表示で起動する場合、『Hide during application launch』をチェックしておきます。
2. UIApplicationのsetStatusBarHiddenで表示を切り替え
プログラムはこんな感じになります。
ステータスバーを非表示にする。
- (IBAction)hideStatusBar:(id)sender { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]; }
ステータスバーを表示する。
- (IBAction)showStatusBar:(id)sender { [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; }
参考資料
iOS 7でステータスバーを非表示にしたりスタイルを変更する方法 - Dolice Lab
http://lab.dolice.net/blog/2013/09/25/objc-ios7-status-bar/
iOS7ステータスバー対策まとめ - Qiita
http://qiita.com/makoto_kw/items/d7ed59aff27fb95c9fde