私は最初のiPhoneアプリの作成をほぼ完了し、背景画像を追加しようとしていますが、少し混乱しています。これは、最近、iPhoneのバージョンごとに、起動する解像度が異なる3つまたは4つの異なるサイズの画面があるためです。
ですから、私はすべてを[email protected]
知っていますが、本当に必要なものはまだわかりません。アプリをiPhone4 / 4s、5s / 5c、6/6 +で実行したい場合、背景画像の異なるバージョンがいくつ必要で、どのサイズと解像度で使用できますか?
私はグーグルで検索しましたが、2014年の最新のまとまりのある答えは見つかりませんでした。
また、iPhone6が1334x750 @ 3xの場合、4002x2250の背景を含めることになっているということですか?そして、1920x1080 iPhone 6+ @ 3xの場合、5760 x 3240の画像ですか?それは大規模です!私はこれを間違って理解しているに違いないと感じています。
iPhone 6 / Plusのネイティブ解像度をサポートする場合は、起動イメージ(iOS 8より前)または起動画面xib(iOS 8)を追加する必要があります。
iPhone 4 / 4S:640 x 960
iPhone 5 / 5S:640 x 1136
iPhone 6:750 x 1334
iPhont 6 Plus:1242 x 2208
つまり、これらのデバイスをサポートする場合は、上記の解像度で4つの起動イメージを準備する必要があります。iOSシミュレーターを使用して、さまざまな解像度のスクリーンショットをキャプチャできます。compatibility mode
特定の解像度の起動画像が見つからない場合、アプリは新しい解像度のデバイスで実行されます。論理サイズが同じでもcompatibility mode
、ビューが新しい画面サイズに合うように拡大縮小されることを意味します。
編集:
opは何@2x
を@3x
意味するのか誤解していると思います。iPhone6の解像度は750(pixels) x 1334(pixels), 326 pixels per inch
です。これが本当の解決策です。そして、375(points) x 667(points)
ネイティブ解像度がサポートされている場合は論理サイズです。iPhone 6 Plusの解像度は1242(pixels) x 2208(pixels), 401 pixels per inch
で、論理サイズは414(points) x 736(points)
です。
これは、さまざまな解像度の画像がiOSデバイスでどのように機能するかです。
iPhone 4s、iPhone 5 / 5S、iPhone 6 / plusでアプリを実行したいとします。最初にすべきことは、これらのデバイスのネイティブ解像度をサポートするために4つの起動イメージを提供することです。iOSがアプリを起動すると、アプリが現在のデバイスのネイティブ解像度をサポートする適切な起動画像を提供しているかどうかを確認します。iOSがそれを見つけたら、起動時にそれを使用し、画面の論理サイズが正しい場合、アプリは通常どおり実行されます。それ以外の場合は、compatibility mode
すべてのビューがスケーリングされるアプリが実行されます。
foo.png
アプリに論理サイズがであるという名前の画像があるとします100(points) x 100(points)
。この画像が上記のすべてのデバイスで同じように見えるようにします。この画像の2つのバージョンを提供する必要があります。1つは200(pixels) x 200 (pixels)
名前が付けられfoo.png@2x
ている必要があり、もう1つは名前が300(pixels) x 300(pixels)
付けられていfoo.png@3x
ます。この画像を[UIImage imageNamed:@"foo"]
でロードすると、iPhone 6 plus以外のデバイスで、アプリはという名前の画像をロードしますfoo.png@2x
。それ以外の場合、アプリはfoo.png@3x
300 * 84%(ピクセル)x 300 * 84%(ピクセル)までロードしてサンプリングします。
また、URLから画像を読み込み、ランタイムでレンダリングする必要がある場合。あなたが得るサイズがであるとしましょう{width:100, height:100}
、スケールは1.0
です。これは、この画像の実際のサイズがであることを意味し100 * 1.0(pixels) x 100 * 1.0(pixels
ます。スケーリングしたくない場合は、論理サイズを自分で計算する必要があります。あなたはこのようにします:
UIImage *image = ... // you get it from an url
CGFloat scale = [UIScreen mainScreen].scale;
CGFloat width = image.size.width / scale;
CGFloat height = image.size.height / scale;
CGRect frame = CGRectMake(50.0f, 50.0f, width, height)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
imageView.contentMode = UIViewContentModeCenter;
imageView.image = image;
[self.view addSubview:imageView];
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加