寸法が200X100ピクセルのcool.pngファイルがあり、それを網膜と通常のデバイスの両方に使用したいとします。UIImageView 100X50ポイントのサイズを取得する必要があります。
画像のサイズに応じてUIImageViewのサイズを小さくしようとしましたが、スケール修飾子@ 2xを使用する場合と使用しない場合の2つのファイルを準備するか、UIImageViewを使用してcontentModeプロパティでスケーリングしても、視覚的に違いはわかりません。
BOOL retina = [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;
UIImage *img = [UIImage imageNamed:@"cool.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
imgView.contentMode = UIViewContentModeScaleToFill;
CGFloat width = img.size.width;
CGFloat height = img.size.height;
if (!retina) {
width = width/2.0;
height = height/2.0;
}
imgView.frame = CGRectMake (somePoint.x, somePoint.y, width, height);
アプローチに何か問題がありますか?