UIImageView
まず、が 60x60ポイントであることに同意しましょう。これは、標準ディスプレイでは60x60ピクセル、Retina ディスプレイでは 120x120ピクセルを意味します。
UIImageView
60x60 ポイントの場合、イメージは標準ディスプレイのスケール 1.0 で 60x60 ピクセル、Retinaディスプレイのスケール 2.0で 120x120 ピクセルである必要があります。これは、UIImage
常にsize
60x60 ポイントを持つ必要がありますがscale
、ディスプレイの解像度によって異なる必要があることを意味します。
サーバーから画像データを取得するときは、まずデバイスの画面のスケールを確認してから、次のように適切な画像サイズ (ピクセル単位) を要求する必要があります。
if ([UIScreen mainScreen].scale == 1.0) {
// Build URL for 60x60 pixels image
}
else {
// Build URL for 120x120 pixels image
}
次に、画像データを適切なUIImage
サイズの60x60
ポイントに配置する必要がありますscale
。
NSData *imageData = [NSData dataWithContentsOfURL:url];
CFDataRef cfdata = CFDataCreate(NULL, [imageData bytes], [imageData length]);
CGDataProviderRef imageDataProvider = CGDataProviderCreateWithCFData (cfdata);
CGImageRef imageRef = CGImageCreateWithJPEGDataProvider(imageDataProvider, NULL, true, kCGRenderingIntentDefault);
UIImage *image = [[UIImage alloc] initWithCGImage:imageRef
scale:[UIScreen mainScreen].scale
orientation:UIImageOrientationUp];
CFRelease (imageRef);
CFRelease (imageDataProvider);
CFRelease(cfdata);
お役に立てれば。