8

テーブルビューセルに画像を表示しています(画像名はplistに保存されています)。セルに設定する前に、画像のサイズを次のように変更しています
imageSize = CGSizeMake(32, 32);

ただし、画像のサイズを変更すると、Retinaディスプレイの品質も低下します。

ここに画像の説明を入力してください

プロジェクトに両方の画像を追加しました(つまり、1xと@ 2x)。

これが私が画像サイズを32x32に縮小する方法です。

+ (UIImage *)scale:(UIImage *)image toSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}

これに関するポインタは非常に高く評価されています。

ありがとう

4

1 に答える 1

19

UIGraphicsBeginImageContext(size);これを試してください:使用する代わりにUIGraphicsBeginImageContextWithOptions(size,NO,0.0);

私が理解していることから、解像度に関係なく、画像のサイズを32x32(ポイント単位)に変更することができます。スケールは、画像をデバイスの画面のUIGraphicsBeginImageContextWithOptionsスケールに合わせて拡大縮小します。したがって、画像のサイズは32x32ポイントに変更されますが、Retinaディスプレイ用に解像度が維持されます。

(これは私がアップルのuikitリファレンスから理解したものであることに注意してください..そうではないかもしれません..しかしそれはすべきです)ここを読んでください

于 2012-04-01T23:14:19.840 に答える