2

私はiPad3用のアプリケーションを開発しています-Retinaディスプレイを使用しています。仕様に基づいて、画面全体(ステータスバーを含む)に画像を表示するには、1536x2008である必要があると計算しました。画像のサイズをそのようなサイズに変更し、プログラムで画像を読み込んで、UIImageView(ストーリーボードから読み込んだ)に表示するように設定しました。さらに、最高のパフォーマンスを得るには、UIImageViewモードをCenterに設定します(スケーリングを回避するため)。アプリを実行すると、画像の中央のみが表示されます(画像が画面の4倍であるかのように)。これは正しくありません。

彼女の私のviewWillAppearメソッドのコード

UIImage *image = [UIImage imageWithContentsOfFile: self.pageData.pageFilename];

NSLog(@"Image size: %f %f", [image size].width, [image size].height);

NSLog(@"Image view size: %f %f", self.imageView.frame.size.width, self.imageView.frame.size.height);

[ self.imageView setImage: image];

そして、私は出力を取得します:

Image size: 1536.000000 1990.000000
Image view size: 768.000000 1004.000000

これを修正する方法は?私の画像はJPGで、サイズは表示され、72 DPIですが、DPIは問題ではないと確信しています。

4

1 に答える 1

5

ピクセルとポイントを混同しています。

iOSでは、寸法はpixlesではなくポイントで測定されます。デバイスがRetinaディスプレイを使用している場合、1ポイント=2ピクセル。古いディスプレイを使用すると、1ポイント=1ピクセルになります。


通常表示
1ポイント=1ピクセル
1024*768ポイント
1024*768ピクセル

Retinaディスプレイ
1ポイント=2ピクセル
1024*768ポイント
2048*1536ピクセル


したがって、どちらの場合も、ディスプレイのサイズは同じサイズになります:
1024*768ポイント

于 2012-08-30T14:32:47.357 に答える