デフォルトでは、UIImageViewはUIImageViewで彼の画像を1px of image = 1ptとして表示しますが、2px of image=1ptとして表示したいと思います。
「..@2x..」という名前の画像を保存するバージョンは適切ではありません。画像はファイルシステムに保存されません。
たとえば、画像サイズが400x100の場合、画像をディスプレイの中央に表示したいのですが、画像の左側が120 pt、右側が120 ptである必要があります(640-400)/ 2
デフォルトでは、UIImageViewはUIImageViewで彼の画像を1px of image = 1ptとして表示しますが、2px of image=1ptとして表示したいと思います。
「..@2x..」という名前の画像を保存するバージョンは適切ではありません。画像はファイルシステムに保存されません。
たとえば、画像サイズが400x100の場合、画像をディスプレイの中央に表示したいのですが、画像の左側が120 pt、右側が120 ptである必要があります(640-400)/ 2
これは非常に簡単です。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スケールの画像を返品してください。
次のようなものを使用できます。
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]
}