2

デフォルトでは、UIImageViewはUIImageViewで彼の画像を1px of image = 1ptとして表示しますが、2px of image=1ptとして表示したいと思います。

「..@2x..」という名前の画像を保存するバージョンは適切ではありません。画像はファイルシステムに保存されません。

たとえば、画像サイズが400x100の場合、画像をディスプレイの中央に表示したいのですが、画像の左側が120 pt、右側が120 ptである必要があります(640-400)/ 2

4

2 に答える 2

1

これは非常に簡単です。iOS4より前のバージョンでは、Retinaディスプレイがないことに注意してください。そのため、画像スケーリング方法では、最初にこのチェックを行います。

//Retina detect
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2){

そしてimageどこか(ファイル、キャッシュなど)からロードしたので、このようにスケーリングしています

UIImage * image2Xscaled = [UIImage alloc];
            image = [[image2Xscaled initWithCGImage:[image CGImage] scale:2.0 orientation:UIImageOrientationUp] autorelease];

方法

initWithCGImage:scale:orientation:

iOS4.0で利用可能です。そのため、最初のチェックが必要です。販売がサポートされていない場合は、1.0スケールの画像を返品してください。

于 2012-07-16T09:39:42.197 に答える
0

次のようなものを使用できます。

NSData *data = //your data, however you get that...
UIImage *image = [UIImage imageWithData:data];
if ([UIScreen mainScreen].scale > 1.0f)
{
    image = [UIImage imageWithCGImage:image
                                scale:[UIScreen mainScreen].scale
                          orientation:UIImageOrientationUp]
}
于 2012-07-16T09:38:53.737 に答える