Xcode 5 になって変わった開発周りの微妙な違い
SPECIAL
.auto-style1 {
font-weight: normal;
}
.auto-style2 {
border-style: solid;
border-width: 1px;
}
開発環境が Xcode 4 から Xcode 5 に変わって気になったアプリ開発の違いを整理してみました。
iOS 7 の登場と合わせてリリースされた Xcode 5 ですけど、それまで使用していた Xcode 4 と比べて気になる違いがいくつかありました。
それらについて、現象とその対処方法を整理してみます。
ステータスバーがルートビューに重なるようになった
iOS 7 環境では、ステータスバーが原則的にルートビューに重ねて表示されるようになりました。
これは iOS 7 のレイヤーを重ねる発想とコンテンツを大事にコンセプトに依るもので、ステータスバーなどにも透明感を持たせ、その下のコンテンツの存在を示すのには不可欠な存在です。
ただ、iOS 6 と iOS 7 両対応の画面をデザインするとき、見た目だけでなくて座標も変わってくるので注意が必要です。
iOS 6 ではいちばん上を Y=0 でレイアウトすればいいのは変わらないのですが、iOS 7 の場合でステータスバーに重ねたくない場合は、iOS 6 のレイアウトから Y+=20 だけずらしてあげないといけません。
この iOS 6 と iOS 7 との違いは、Interface Builder でデルタ値を設定することで吸収することができます。
詳しくは >> iOS 6 と iOS 7 のレイアウトのズレを吸収する。
テーブルビューがステータスバーに重ならない場合がある
以前の Xcode 4 で作成したプロジェクトだからなのか、場合によっては UITableViewController のテーブルビューだけ、ステータスバーに重ねられずにレイアウトされる場合がありました。
デザイン的に他の UIViewController のビューとのバランスが悪い場合は、プログラムなどからテーブルビューのコンテンツ表示位置を微調整する必要がありそうです。
詳しくは >> iOS 7 でテーブルビューの表示位置を微調整する。
ボタンの画像が tintColor で塗りつぶされる
iOS 7 からデザインコンセプトが変更されて、いわゆるフラットデザインになりました。
UIButton もその影響を大きく受けて、標準スタイルは角丸からテキストだけに変更になりました。そこに設定する画像も tintColor で設定した単一色で塗りつぶされて、ボタンの印象はとても大きく変わります。
特に iOS 6 と iOS 7 の両方に対応しようと考えた場合、この UIButton の仕様の違いはけっこう頭を悩まされるところなので、それぞれの違いを意識しながらデザインを考えるのが大切そうです。
カスタムサイズのビューのサイズが勝手に狂う
サイズを Freeform に設定していた UIViewController を Xcode 5 で開いて編集すると、設定してあったサイズがおかしくなってしまうことがありました。
詳しくは >> Xcode 5 でカスタムサイズのビューを安全に扱うために
ステータスバーの表示状態をプログラムで変更するためのひと手間
iOS 6 まではステータスバーの表示状態を簡単に切り替えられましたけど、iOS 7 からは従前の方法だけでは切り替えできなくなっています。
詳しくは >> iOS 7 でステータスバーの表示状態をプログラムで切り替える
アプリのレビューページを開こうとすると真っ白になる
iOS 6 系までは "itms-apps:" プロトコルを使って、目的のアプリのレビューページをスマートに開くことができました。
ところがこの方法は iOS 7.0 では使えなくなっていたので、別の良い方法を探してみました。