1

Retina解像度でアプリケーションを構築しようとしています(2048x1536)が、以下を使用しています:

NSLog(@"resolution from xcode %f %f", [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);

私はいつも1024x768解決策を得ます。Retina解像度を設定する方法はありますか?

4

1 に答える 1

4

ピクセルではなく、ポイントで値を取得しています。Appleのドキュメントから:

ポイントとピクセル

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

1つのポイントは、必ずしも画面上の1つのピクセルに対応するわけではありません。

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

于 2012-07-05T10:38:26.933 に答える