2014年の目標のひとつはiPhone&Androidアプリを作ること!!ということで、cocos2d-xのお勉強を進めているんですが、ちょっと気になっていたことがようやく解決しましたので、備忘録として残しておきます。
目次
現象:画面のステータスバーが消せない!
『cocos2d-xによるiPhone/Androidアプリプログラミングガイド』のサンプルを見ながらお勉強を進めているわけですが、どうにもきになるのが、画面上部に表示されるステータスバー。電波状況、時計、電池残量が表示されるエリアのことです。
書籍では表示されていないんですが、どうやらこれはiOS7の機能で、全画面表示のアプリであってもステータスバーが表示されるようになったからっぽい。。
『パズドラ』なんかはあえて電池残量をゲーム画面上に残したりもしますが、基本的にはちょっと邪魔。
というわけで、このステータスバーを非表示にしたい!!
解決方法
「iOS アプリ ステータスバーを消す」などのキーワードでググってみると、どうやら「Status bar is initially hidden」というプロパティを追加するといいみたい。
というわけで、XcodeのProject Navigatorからプロジェクトを選択し、Infoタブを開きまして、、、
ここに新たにプロパティを追加。
または、[ios]フォルダの「Info.plist」に記述してもOKです。
プロパティのKeyは「Status bar is initially hidden」、値は「YES」を指定します。
そのままの意味ですが、
ステータスバーの表示・非表示の設定
・YES:非表示
・NO:表示(デフォルト)
という感じです。
起動直後のスプラッシュスクリーンでは確かにステータスバーが消えました。
しかし、、、
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:非表示
すると、、、
はい、消えた!!
ちなみに、「View controller-based status bar appearance」の方だけを設定すると、スプラッシュスクリーンのステータスバーは消えないので注意!
というわけで、上記2つのプロパティを設定するという作業を、cocos2d-xでゲームを作る際のお作法の一つとして、覚えておこうと思います。
コメントを残す