社員ブログ
HOME  社員ブログ
ホーム > Interface Builder, Objective-C, Xcode, 社員:cobra > xcode iOS7でステータスバーにかぶってしまう問題の対処法。

xcode iOS7でステータスバーにかぶってしまう問題の対処法。

2014年01月29日 10時21分19秒

こんにちは、コブラです。



先日、「Missing recommended icon file ~」エラーの対処法。」という記事でもiOS7について書きましたが、

またしてもiOS7の問題にぶつかりました。



xcode4でつくったプロジェクトをxcode5で開く→iOS7のシミュレータで起動。


あれ?ステータスバーに画像がかぶってる・・・

xcode iOS7でステータスバーにかぶってしまう問題の対処法。






(画像は下記ブログ様からお借りしました)


というわけで参考になる記事はこちら!

iOS7でステータスバーが被る問題への対応 – Kazzzの日記様



どうやら、iOS7からはステータスバーが独立したレイヤとなり、

アプリの影響を受けなくなったようです。

ただし、Navigationbarを使うと大丈夫だったり、不思議な仕様です。



さて、これにどう対応するかですが、

全画面のメインファイル(.m)でiOS7かどうか判別して画像やボタンの座標を変更するのは容易ではありませんので、

レイアウトファイル(.xib)でサクッとやってしまいましょう。


位置を自動調整したい画像やボタンを選び、Size Inspectorを選びます。

まずはViewのY座標を、ステータスバー分ずらします。

次にその下にあるiOS6/7 Deltasで、ずらした分だけ戻します。

これは、iOS6以下の場合にDeltasで指定した座標が適用されるというすぐれもの。

xcode iOS7でステータスバーにかぶってしまう問題の対処法。



















ただし、画像やボタンの座標を1つずつ変更するのは非常に手間で、

仕様変更があったときにかなり大変なことになるので、

UIViewなどに全部乗せてしまって、そのUIViewのDeltasを変更するのがお勧めです。

ただし、Viewの場合はHeight+20することをお忘れなく。



新しいOSの対応は本当に大変ですね。

Interface Builder, Objective-C, Xcode, 社員:cobra

  1. WAVE 堺田
    2014年02月12日 0時32分08秒 | #1

    それは、互換性あるのでは?
    OSの既存によって対応は必要だが、それほどの考えで対応だと。。。どうかな?
    互換性対応と、将来性維持として考えるならば、NAVIGAを強化するのが鉄則。
    御社は、開発を始めたばかりでしょうか。

    失礼なコメントで申し訳ない。

    • cobra
      2014年02月12日 14時09分30秒 | #2

      >WAVE堺田様

      貴重なご意見ありがとうございます。
      弊社はスマホアプリ開発歴2年で、まだまだ新参です。

      2014年2月以降にリリース・アップデートするアプリはiOS7対応が必須になったことを受け、
      開発もxcode4→xcode5への変更を余儀なくされ、
      その為にこのような現象が発生しました。

      仰る通りハードとしての上位互換はございまして、
      iOS7対応していないアプリでもiPhone5Sなどで普通に動作する事の方が多いと思いますが、
      プロジェクトレベル、ソースレベルで見るとそうもいかなかったのが現状です。

      いずれにしましても、設計やコーディングの仕方で将来性・拡張性は左右されるので、
      これからも勉強していきたいと思います。
      コメントありがとうございました!

  1. トラックバックはまだありません