5

新しい iPad Retina ディスプレイ用にアプリを更新しようとしているときに興味深いことに気付きました。Interface Builder のすべての座標は、依然として元の 1024x768 解像度に基づいています。

つまり、2048x1536 の画像をディスプレイの画面全体に合わせるには、サイズを 2048x1536 ではなく 1024x768 に設定する必要があります。

これは意図的なものですか?Interface Builder の座標系を Retina 専用に切り替えることはできますか? 私のグラフィックの中には、元のグラフィックの幅または高さが正確に 2 倍ではないものがあるため、少し面倒です。1.5 などの 1/2 座標番号を設定できないようです。Interface Builder 内で 1 または 2 のいずれかになります。

この時点でインターフェイスの設計をコードで行い、インターフェイス ビルダーを忘れるべきでしょうか? グラフィックスを両方向で正確に 2 倍に保ちますか? それともそれと一緒に暮らすだけですか?

4

2 に答える 2

4

iOS のインターフェイスは、ピクセルではなくポイントに基づいています。画像は元のサイズの 2 倍にする必要があります。

ポイントとピクセル iOS では、描画コードで指定する座標と、基盤となるデバイスのピクセルが区別されます。Quartz、UIKit、Core Animation などのネイティブ描画テクノロジを使用する場合、距離をポイント単位で測定する論理座標空間を使用して座標値を指定します。この論理座標系は、システム フレームワークが画面上のピクセルを管理するために使用するデバイス座標空間から分離されています。システムは、論理座標空間のポイントをデバイス座標空間のピクセルに自動的にマッピングしますが、このマッピングは常に 1 対 1 であるとは限りません。この動作は、常に覚えておくべき重要な事実につながります。

1 点が画面上の 1 ピクセルに対応するとは限りません。ポイント (および論理座標系) を使用する目的は、デバイスに依存しない一貫したサイズの出力を提供することです。ポイントの実際のサイズは関係ありません。ポイントの目的は、ビューとレンダリングされたコンテンツのサイズと位置を指定するためにコードで使用できる比較的一貫したスケールを提供することです。ポイントが実際にどのようにピクセルにマッピングされるかは、システム フレームワークによって処理される詳細です。たとえば、高解像度の画面を備えたデバイスでは、幅が 1 ポイントの線が実際には画面上で幅が 2 ピクセルになる場合があります。その結果、2 つの類似したデバイスで同じコンテンツを描画し、そのうちの 1 つだけが高解像度の画面を持っている場合、

独自の描画コードでは、ほとんどの場合ポイントを使用しますが、ポイントがピクセルにどのようにマップされるかを知る必要がある場合もあります。たとえば、高解像度の画面では、余分なピクセルを使用してコンテンツに詳細を追加したり、単にコンテンツの位置やサイズを微妙に調整したりすることができます。iOS 4 以降では、UIScreen、UIView、UIImage、および CALayer クラスが、その特定のオブジェクトのポイントとピクセルの関係を示す倍率を公開します。iOS 4 より前では、この倍率は 1.0 であると想定されていましたが、iOS 4 以降では、基盤となるデバイスの解像度に応じて、1.0 または 2.0 のいずれかになります。将来的には、他の倍率も可能になる可能性があります。

http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.htmlから

于 2012-04-09T20:32:54.150 に答える
1

これは、コントロールとテキストを配置するときにコードを実際の画面解像度から比較的独立させるために、Apple 側で意図的に行われています。ただし、お気づきのように、デバイスの最大解像度でグラフィックを表示するのが少し複雑になる可能性があります。

iPhone の場合、画面は常に 480 x 320 ポイントです。iPad の場合は 1024 x 768 です。グラフィックスがデバイスに合わせて適切にスケーリングされている場合、影響をコードで処理することは難しくありません。私はグラフィック デザイナーではありませんが、高解像度を説明するために複数のアイコン セット、起動イメージなどを提供する必要があることは、少し難しいことがわかっています。

Apple では、コードへの影響を最小限に抑えるために、一部の画像タイプに対して命名基準を設けています。

https://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/IconsImages/IconsImages.html

ただし、カスタム グラフィックスをインラインで処理している場合は役に立ちません。

于 2012-04-09T20:33:47.750 に答える