「 EverForm for iOS」をiPad対応にした際に躓いたポイントです。
iPhoneでは起動画面(Default.png)にステータスバーの高さが含まれています。
(320 x 480 / 640 x 960 / 640 x 1136)
しかし、iPadでは含まれていません。(768 x 1004 / 1536 x 2008)
これは画像のサイズだけの問題ではなく表示位置にも影響します。
iPhoneではスクリーンサイズの起動画面画像を用意しますがステータスバーの分は隠れてしまいます。
一方でiPadはステータスバーの高さを除いた画像なので、ステータスバーの下から画像が表示されます。
単に起動画面を表示する場合は問題になりませんが、その後の画面とうまく繋げようとすると この差が重要になります。
実際やろうとしたことは以下の二つです。
[1] 起動画面の後、画像の一部を重ねてログイン画面を表示する。
[2] ログインした場合は起動画面をフェードアウトして別画面へ遷移させる。
[1]を実現するには起動画面の画像と、ログイン画面に表示させる画像で、重ねたい部分を同じ位置に描画すれば良いと考えると思います。
iPhoneではうまくいくのですが、前述の通りステータスバーの高さが含まれないiPadではうまく行きません。 合わせるためには、iPad用起動画面(Default-Portraitipad.pngなど)の重ねたい部分をステータスバーの高さだけ下にずらします。ipad.png)なら20px、iPad(Retina)用(Default-Portrait@2x~ipad.png)なら40px)
(iPad mini用画像(Default-Portrait
ログイン画面の画像を修正する方法もありますが、こちらは特に合わせようとしなくてもiPhone/iPad同じレイアウトになるので変更しない方が良いでしょう。
[2]を実現する場合には、単に起動画面の画像をアルファ値を0にするようなアニメーションで表示すれば良いですが、やはりiPadの場合は画像の表示位置をステータスバーの分だけずらす必要があります。
ということで、まとめると以下のような感じです。