[備忘録]cocos2d-xで画面のステータスバーを消す方法

2014年の目標のひとつはiPhone&Androidアプリを作ること!!ということで、cocos2d-xのお勉強を進めているんですが、ちょっと気になっていたことがようやく解決しましたので、備忘録として残しておきます。

現象:画面のステータスバーが消せない!

cocos2d-xによるiPhone/Androidアプリプログラミングガイド』のサンプルを見ながらお勉強を進めているわけですが、どうにもきになるのが、画面上部に表示されるステータスバー。電波状況、時計、電池残量が表示されるエリアのことです。

スクリーンショット 2014 01 13 20 50 50 4

書籍では表示されていないんですが、どうやらこれはiOS7の機能で、全画面表示のアプリであってもステータスバーが表示されるようになったからっぽい。。
パズドラ』なんかはあえて電池残量をゲーム画面上に残したりもしますが、基本的にはちょっと邪魔。
というわけで、このステータスバーを非表示にしたい!!

解決方法

「iOS アプリ ステータスバーを消す」などのキーワードでググってみると、どうやら「Status bar is initially hidden」というプロパティを追加するといいみたい。

というわけで、XcodeのProject Navigatorからプロジェクトを選択し、Infoタブを開きまして、、、
スクリーンショット 2014 01 13 22 27 06 5

ここに新たにプロパティを追加。
または、[ios]フォルダの「Info.plist」に記述してもOKです。
プロパティのKeyは「Status bar is initially hidden」、値は「YES」を指定します。

ちなみに「Status bar is initially hidden」の意味は?

そのままの意味ですが、

ステータスバーの表示・非表示の設定
・YES:非表示
・NO:表示(デフォルト)

という感じです。

起動直後のスプラッシュスクリーンでは確かにステータスバーが消えました。
スクリーンショット 2014 01 13 20 49 51

しかし、、、

「Status bar is initially hidden」だけではステータスバーが消えない!!

ゲーム画面には相変わらずステータスバーが。。。
スクリーンショット 2014 01 13 20 50 50

iOS6までは上記の設定でステータスバーが消えたらしいんですが、iOS7ではこれだけではダメ!
もうひとつ、「View controller-based status bar appearance」というプロパティの設定が必要なようです。

こちらも、同じようにプロジェクトのinfoもしくは「Info.plist」に、「View controller-based status bar appearance」のKeyを追加。
値は「No」を指定します。

ちなみに、「View controller-based status bar appearance」の意味は?

View controllerによって描画されるステータスバーの表示・非表示の設定
・YES:表示(デフォルト)
・NO:非表示

すると、、、

はい、消えた!!

スクリーンショット 2014 01 13 20 50 01

ちなみに、「View controller-based status bar appearance」の方だけを設定すると、スプラッシュスクリーンのステータスバーは消えないので注意!

スクリーンショット 2014 01 13 20 42 22 8
というわけで、上記2つのプロパティを設定するという作業を、cocos2d-xでゲームを作る際のお作法の一つとして、覚えておこうと思います。

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です