LoginSignup
8
8

More than 5 years have passed since last update.

Adobe AIRでiOS7のUIStatusBarStyleを変更する

Last updated at Posted at 2013-12-07

この記事はAdobe AIR Advent Calendar 2013 7日目の記事です。
大したことは書いていませんが、飛び込みで参加せていただきます。

さて、iOS7ではステータスバーが透明になり、コンテンツの上に表示されるようになりました。
そのため、フルスクリーンではないアプリの場合、
コンテンツの背景が明るければデフォルトの黒い文字、明るければUIStatusBarStyleをUIStatusBarStyleLightContentにして白い文字に設定します。

ただ、iOS7のバグ?なのか、ステータスバーの文字色を白にしていても、カメラロールを表示した後は黒い文字に変わってしまいました。

AIRのAPIからステータスバーの設定なんて出来ないよなぁって思ったので(ちゃんとドキュメント探してないですが)、ステータスバーの色を切り替えるANEをつくりました。

ANEとプロジェクト一式ははGithubに公開してあります。
https://github.com/kazutoyo/StatusBarStyleANE

さて、使い方は次のような感じです。

StatusBarStyle.as
import jp.kazutoyo.ane.StatusBarStyleANE;
if(StatusBarStyleANE.getInstance().isSupported()) {
    StatusBarStyleANE.getInstance().setStatusBarStyle(StatusBarStyleANE.STATUS_BAR_STYLE_LIGHT_CONTENT);
}

白い文字にするときはStatusBarStyleANE.STATUS_BAR_STYLE_LIGHT_CONTENT、
黒い文字にするときはStatusBarStyleANE.STATUS_BAR_STYLE_DEFAULTをsetStatusBarStyleに指定します。

これで下の画面のような感じに切り替えができます。
uistatusbarsample.png

AIRは便利な部分もありますが、OS側のバグやAIRのバグがあるとANEで対応しないといけないことがたびたびあります。
マルチプラットフォームに対応したAIRの宿命なので仕方ないですが、もうちょっとこういう対応が減らないかなーって思ってます。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8