0

現在、UITableView アクセサリ ビューにカスタム イメージを使用しています。このカスタム イメージでアクセサリ ビューをイメージ ビューに設定します。cell-arrow.png (15x15 px) を使用すると、かなりピクセル化されたように見えます。ただし、cell-arrow.png (100x100 px) を使用してコードでサイズを変更すると [以下を参照] すると、見栄えが大幅に向上します。どうしてこれなの?

フォローアップの質問:

100x100px の画像を使用してから 15x15 にサイズを縮小すると、デバイス上で見栄えが良くなることが判明したようです (特に Retina では、4.0 未満では完全にテストされていません)。フォローアップの質問は、解像度を上げるために画像を設定できる最大サイズはどれくらいですか? たとえば、まったく同じ cell-arrow.png 画像の 1024x1024 バージョンをテストしたところ、100x100 ピクセルの画像のサイズを変更したときと同じように見えました。

*画像のサイズ変更に使用するコード: *

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 15.0f, 15.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"cell-arrow.png"]];

   // cellArrowNotScaled ends up making the image look very pixelated
   // UIImageView *cellArrowNotScaled = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell-arrow15.png"]];

    cell.accessoryView = myImage; //cellArrowNotScaled;
4

1 に答える 1

2

一般に、画面上で使用されるサイズと正確に同じサイズの画像を使用する必要があります。そうしないと、画像をソフトウェアに合わせて拡大したままにしておくことになり、ピクセルの位置がずれたり、シャープな線がぼやけてしまう可能性があります。iOS 4 以降、UIKit のすべての測定値は UIKit ポイントであることに注意してください。Retina ディスプレイでは 1pt = 2px、非 Retina ディスプレイでは 1pt = 1px です。

したがって、Retina デバイスと非 Retina デバイスの両方をターゲットにする場合は、15pt × 15pt の画像ビューで 2 つの画像ファイルが必要になります。

  • cell-arrow.png、15px × 15px の画像
  • cell-arrow@2x.png、30px × 30px の画像

次に、呼び出します[UIImage imageNamed:@"cell-arrow"](拡張機能がないことに注意してください - UIKit がそれを判断します)。OS は、必要に応じて 1x または 2x バージョンをロードします。

于 2013-07-25T03:50:01.007 に答える