キリンを召還するブログ。

Unity,OpenCVとRaspberryの事とか書くと思います。普段はiOSとかAndroidの枯れたアプリ技術を中心にやってます。なので、たまに失敗メモとして日常のハマった事とかも書きます。センサーも好きです。

【iOS】iOS7のステータスバー問題とXcode4を今すぐ廃止する理由

前々から噂になっていたiOS7のステータスバー問題、あんまり気にしてなかったけど

先日、見事に地雷を踏みました。どういう事かというと、普通に今までの感覚で

画面作ったつもりでもXCode5で実行するとこうなるのです。

f:id:jkawasaki:20131021002848p:plain

※画像は参考で開発した物ではありません

 

見事なまでにヘッダーめりこんでます

何が起きてるかというと、iOS7ではステータスバーが透明になって

さらにステータス領域20pxが「なかった事」になり全体が上に上がってしまう。

しかもこの状態、Xcode4.xでビルドすると発生しないってのが憎い。

対応策はいくつかあり、下記にまとめられてます。

(かぶっても意味ないのでココでは具体的には書きません)

 

iOS7ステータスバー対策まとめ

iOS7でstatusbar(ステータスバー)を消す方法

 

ちなみに僕は申請間際にこの問題に気付き、超絶時間が無い中での対応になりました。

本当は黒背景でステータスバーを「復活」出来ないかな、と思ったのですが、

さすがのAppleはそんな下位互換は簡単にさせてくれないぽかったので、

とりいそぎステータスバーを消す形で対応しました。

でも画面高さからレイアウト指定している箇所が何カ所かあったので

更にいくつか微調整が必要になりました。。

実際には画面毎にステータスバーを動的に表示させたり、

20pxを保持したままってのも出来ますが何か開発者が苦労するばかりで得をしないので

力技での解決はあまりおすすめしません(バグ増えるし)。

かといって、一律、完全に消してしまうと電波が必要な機能なのに表示がないとか、

時間が見えなくて使い難いとかなるので、画面設計で柔軟な対応が求められます。

 

<要約:ステータスバー問題を発生させない為に>

・ちゃんとデザイナーにこの辺を理解してもらう

・デザイン上、ステータスバーが必要な場合は20pxを考慮したデザインをする

・Xcode4.xを使っている人は排除する

 

個人的に一番最後のXcode5の件は他にも想定外の問題を出さないためにも

世界中で直ぐに実施した方が良いとおもいます。

時間があったらまた別途書きますが、Xcode5を使うとまた申請の仕方が違ったり

何故か今までは出来ていた方法でAdHoc配信が出来なかったりと

予期せぬ害が生まれる事が多いです。(開発環境としては使い易くなっていますし)

iOS7に対応してないアプリはリジェクト対象のリスクも含んでいるとの事なので、

使い慣れてるとかアップデートめんどいとかの理由でXcode4系を使い続けないで、

さっさと全員Xcode5に乗り換えた方が良いです。

 

では。