视网膜显示和
我需要从服务器下载的原始数据初始化图像,根据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你不需要自己设定比例值。 操作系统将为您处理点像素转换。