141

新しい iPhone が表示に @3x 画像を使用する画像解像度について、こちらこちらのような記事やディスカッションをいくつか見てきました。本当ですか?

では、3 つの画像を保持する必要があるということでしょうか? たとえば、50 X 50 の画像があるとします。新しい iPhone の外観を最適化するために 3 つの画像を保持する必要がありますか?

  • ノーマル(50×50)
  • @2x - 網膜 (100 X 100)
  • @3x - Retina HD (150 X 150)

それとも、新しい電話は @2x 画像のみを使用し、@3x のようなものは何もないのでしょうか?

サンプル プロジェクトを作成してテストしましたが、すべてのシミュレーターが @3x イメージを使用しているようで、これは混乱を招きます。

編集

ここにいくつかの詳細情報があります

  • 3GS(163ppiなのでノーマルを使用)
  • 4、4s、5、5s (326 ppi なので @2x を使用)
  • 6 (326 ppi なので @2x を使用するようです)
  • 6プラス(401 ppiはここに混乱があります)

編集

Tsob と nitin の回答に基づいて、@3x 画像をプロジェクトに追加しました。

情報編集

iPhone 6 の方が解像度が高いのに @2x 画像を使用する理由について混乱しているユーザーはほとんどいないと思います。その理由は次のとおりです。

iPhone 6 の解像度は異なる場合がありますが、ピクセル インチあたりの密度 (PPI) は同じです。

  • 解像度は、ピクセルの絶対数に関係します。
  • 密度(別名、1 インチあたりのピクセル数 - PPI) は、1 インチあたりの相対的なピクセル数に関するもので、iPhone 6 とそれ以前の iPhone の場合は同じですが、iPhone 6 plus では異なります。

詳しくはこちらのスレッドでご確認ください

したがって、iPhone 6 は iPhone 4、5、および 5S と同じ PPI を持ち、iPhone 6 plus は @3x を使用するため、@2x イメージを使用します。

4

4 に答える 4

54

サンプル プロジェクトで標準の @2x および @3x イメージを使用してみましたが、iPhone 6+ シミュレーターは @3x イメージを使用します。そのため、@3x のイメージを実行する必要があるように見えます (シミュレーターが実際にデバイスの動作を再現する場合)。しかし奇妙なことに、iPhone 4S/iPhone 5 もプロジェクト構造上にある場合、すべてのデバイス (シミュレーター) がこの @3x 画像を使用しているようです。
潜在的な @3x 構造に関する Apple からの連絡の欠如は、開発者に iOS8 アプリを公開するように依頼しているにもかかわらず、特にシミュレーターでそれらの結果を見ると、非常に混乱します。

** Apple の Web サイトから編集 **: これは、Apple の開発者スペースの「iOS 8 の新機能」セクションにもあります。

新しいスクリーン スケールのサポート iPhone 6 Plus は、スクリーン スケール 3.0 の新しい Retina HD ディスプレイを使用しています。これらのデバイスで可能な限り最高のエクスペリエンスを提供するには、この画面スケール用に設計された新しいアートワークを含めてください。Xcode 6 では、アセット カタログに 1x、2x、および 3x サイズの画像を含めることができます。新しい画像アセットを追加するだけで、iPhone 6 Plus での実行時に iOS が正しいアセットを選択します。iOS での画像読み込み動作も、@3x サフィックスを認識します。

すべてのデバイスが @3x をロードしているように見える理由をまだ理解していません。xcassets ではなく、通常のファイルを使用しているためでしょうか? すぐに試します。

さらにテストした後に編集します。iOS 7.1 iPhone 5 シミュレーターでテストすると、@2x イメージが正しく使用されます。しかし、iOS 8 で同じものを起動すると、iPhone 5 で @3x が使用されます。ただし、それが望ましい動作なのか、iOS8 GM または Xcode 6 のシミュレーターの間違い/バグなのかはわかりません。

于 2014-09-11T07:25:24.230 に答える
10

サンプル プロジェクトを作成してテストしましたが、すべてのシミュレーターが @3x images を使用しているように見えますが、これは混乱を招きます。

イメージ自体がバージョンを示すように、アセット カタログにイメージのさまざまなバージョンを作成します。

ここに画像の説明を入力

次に、各シミュレーターで順番にアプリを実行します。3x 画像が iPhone 6 Plus でのみ使用されていることがわかります。

呼び出して画像ビューに割り当てることで、名前 ( one.pngone@2x.pngone@3x.pngなど)を使用してアプリ バンドルから画像を描画する場合も同様です。imageNamed:

(ただし、Interface Builder で画像を画像ビューに割り当てる場合は違いがあります。2 倍解像度のデバイスでは 2x バージョンは無視されます。これはおそらくバグであり、明らかに のバグですpathForResource:ofType:。)

于 2014-09-11T17:19:43.400 に答える
2

ios は常に最適な画像を取得しようとしますが、他のオプションにフォールバックします..そのため、アプリに通常の画像しかなく、@2x 画像が必要な場合は、通常の画像が使用されます。

プロジェクトに @2x のみを配置し、通常のデバイスでアプリを開くと、画像が縮小されて表示されます。

ios7 および ios8 デバイスを対象としており、最高の品質が必要な場合は、電話と通常のアセットに @2x と @3x、iPad アセットに @2x が必要になります。

ベクターグラフィックからアプリ内のアセットを作成する方が良いかもしれません... http://mattgemmell.com/using-pdf-images-in-ios-apps/を確認してください

于 2014-09-11T07:39:26.677 に答える