视网膜显示和
我需要从服务器下载的原始数据初始化图像,根据iPhone客户端的types提供正确的图像大小。
我知道我应该在640×960显示器上将scale值设置为2.0,但是这是只读属性,在使用initWithData时不能在init中设置。
有任何想法吗?
我不知道任何你可以embedded图像数据本身告诉手机,这是一个@ 2x图像,但这样的事情应该工作:
UIImage * img = ...; img = [UIImage imageWithCGImage:img.CGImage scale:2 orientation:img.imageOrientation];  由于iOS 6.0 UIImage方法+ imageWithData:scale:你可以通过2.0作为规模的视网膜。 
 您可以传递[[UIScreen mainScreen] scale]作为scale参数而不是2.0f 。 
把它放在你的.m文件中,如果你需要的话或者在一个导入的类上(当调用函数IMAO时,c的语法更好)
 BOOL isRetina(){ if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { return [[UIScreen mainScreen] scale] == 2.0; } return NO; } 
然后在用服务器数据创build映像时:
 [UIImage imageWithData:dataFromServer scale:isRetina()?2:1]; 
AFAIK你不需要自己设定比例值。 操作系统将为您处理点像素转换。