Xcode:iPhone 5 用の画像も「@2x」

アプリを iPhone 5 に対応させる場合、画面いっぱい画像を使用していると "640 x 1136px" サイズの画像を用意しなければなりません。
ネットで調べてみると "ファイル名-568h@2x.png" といった具合に、"-568h@2x" という文字を追加すればいいんじゃない?というのが幾つか出てきました。でも、それも上手くいかないというのが殆どでした。

実際、Apple の iOS App Programming Guid を見ると iPhone 5 も「@2x」と書いてあります。

iOS App Programming Guid : App-Related Resources

他にも調べてみると、iPhone 5 でアプリを使った時、ファイル名に "-568h@2x" が付加された画像を参照するように〜?というのを見ましたが、もっと簡単に出来ないものかなと思いました。
で、思いついたのが、iPhone 5 でも @2x が付加された画像を読むなら、iPhone and iPhone Retina 3.5 inch か iPhone 5 Retina 4 inch で振り分けて違う画像を読ませればいいんじゃない?

でわ、用意する画像は3つ

  • 320 x 480px(iPhone)
  • 640 x 960px(iPhone Retina 3.5 inch)
  • 640 x 1136px(iPhone Retina 4 inch)

例として、ファイル名を以下とします。

  • image.png(iPhone)
  • image@2x.png(iPhone Retina 3.5 inch)
  • image_iPhone5@2x.png(iPhone Retina 4 inch)

これまでは、プログラムで iPhone 用の画像を指定すると、iPhone 4 実行した場合には Retina 3.5 inch の画像を自動的に表示してくれました。
このままだと、iPhone 5 でも Retina 3.5 inch の画像を表示します。
これを iPhone Retina 4 inch で振り分けます。

// Get Screen Size
CGRect frame = [[UIScreen mainScreen] applicationFrame];

if ( frame.size.height == 548.0 ) {

// iPhone 5
[UIImage imageNamed:@"image_iPhone5.png"];

} else {

// iPhone
[UIImage imageNamed:@"image.png"];

}

※ Code はイメージ的なもので間違っているかもしれませんが、そこは脳内変換でお願いします。
※ スクリーンサイズはステータスバーを表示している場合のサイズです。

image_iPhone5.png という画像は存在しませんが、元々 Retina Display である iPhone 5 では「image_iPhone5@2x.png」を読みに行きます。
こんな感じでやるが簡単なんじゃないのかな?と思います。


WipeWrite PB for Free - クリップボードへ簡単コピー 1.1(無料)
カテゴリ: ユーティリティ, ビジネス
販売元: NEO-SHOCKER.COM - Takahiro Ishihara
WipeWrite PB - クリップボードへ簡単コピー 1.1(¥170)
カテゴリ: ユーティリティ, ビジネス
販売元: NEO-SHOCKER.COM - Takahiro Ishihara
Appshocker
bitFlyer ビットコインを始めるなら安心・安全な取引所で
ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin