以前にも同様の質問があったことは知っていますが、私は本当に悲惨な状況にあります。
iPhone 3G、iPhone 4、iPhone 5で動作するアプリを作成しています。
私は iOS 開発の初心者で、今まで iPhone シミュレーターで動作する大量の UI コードを書いてきました。一般的な iOS 開発について学ぶために一般的な言語と SDK 機能に集中したため、シミュレーターが提供するもの以外の解像度サポートはほとんど無視しました。
今、私はこれらの異なる iPhone バージョン間での移植性のこの要件に直面しており、非常に混乱しています。まず最初に、iPhone 3 と iPhone 4 の画面サポートの詳細について私が知っていることを教えてください。何か間違ったことをした場合は、訂正してください (今のところ、iPhone 5 は完全に無視しています)。
システムは、320x480 POINTベースの表示領域を想定しています。iPhone 3 では実際の画面サイズは同じですが、iPhone 4 では実際の640x960 ピクセルサイズの画面が使用されます。
320x480サイズに従ってビューをコーディングして生成します。通常の解像度の画像 (たとえば、100x100 サイズの some_image.png) と、"@2x"サフィックスが付いた高解像度バージョンを提供します。( 200x200サイズのsome_image@2x.png ) 両方とも同じアプリ バンドル内にあります。
画像読み込みメソッドを呼び出すと
UIKit
、たとえば、UIImage
またはUIImageView
システムは、現在のデバイス (iPhone 3 または iPhone 4) に応じて、正しいバージョンの画像を選択して読み込みます。
これまで、低解像度と高解像度のiPhone 3GとiPhone 4をサポートするために、これらの 3 つの手順を提供することに慎重でした。
オブジェクトで使用するサイズが100x100UIImage
の画像があるとします。200x200の高解像度バージョンも提供しています。これは、 "@2x"サフィックスが付いた iPhone 4 と iPhone 5 の両方で動作すると思います。
しかし、背景全体をカバーするサイズ 320x480 の背景画像があり、640x960 バージョンにも "@2x" サフィックスを付けて提供するとします。
しかし、サイズが640x1136の iPhone 5 の画面ではどうなるでしょうか? iPhone5解像度の画像を用意してif(IPHONE5 == true)
条件付きで読み込むべきですか?
これを処理する適切な方法は何ですか?