Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 视网膜显示的矩形尺寸是多少?_Objective C_Ios_Xcode_Retina Display - Fatal编程技术网

Objective c 视网膜显示的矩形尺寸是多少?

Objective c 视网膜显示的矩形尺寸是多少?,objective-c,ios,xcode,retina-display,Objective C,Ios,Xcode,Retina Display,我只是想知道我的图像是否有x*y维度 当视网膜显示设备显示用CGRectMake(0,0,x,y)创建的图像时,这会是像素化图像吗 是否应该使用正确的大小CGRectMake(0,0,x/2,y/2) 如何判断图像应该具有的矩形大小 我是否需要使用contentScaleFactor=[UIScreen mainScreen].scale 或者可以除以它,如:CGRectMake(0,0,x/contentScaleFactor,y/contentScaleFactor)?测量维度。视网膜和非视

我只是想知道我的图像是否有x*y维度

当视网膜显示设备显示用
CGRectMake(0,0,x,y)
创建的图像时,这会是像素化图像吗

是否应该使用正确的大小
CGRectMake(0,0,x/2,y/2)

如何判断图像应该具有的矩形大小

我是否需要使用
contentScaleFactor=[UIScreen mainScreen].scale

或者可以除以它,如:
CGRectMake(0,0,x/contentScaleFactor,y/contentScaleFactor)

测量维度。视网膜和非视网膜显示设备具有相同的点。在非视网膜显示设备上,一个点等于一个像素,但在视网膜显示设备上,一个点等于两个像素。因此,您将使用
CGRectMake(0,0,x,y)
来处理这两个问题

要避免像素化图像,请确保提供带有
@2x
后缀的双分辨率图像。例如,如果您的常规图像名为
foo.png
,则视网膜版本应命名为
foo@2x.png

编码时,请始终参考
foo.png
。当您的应用程序在视网膜显示设备上运行时,双分辨率图像(
foo@2x.png
)将自动使用。

对于非视网膜图像(myImage.png)大小应为21x21,您应放置另一个带有@2x后缀的图像(myImage@2x.png)尺寸为42x42。在代码中,您可以编写一些类似于

UIImage *img = [UIImage imageNamed:@"myImage"];
此呼叫将根据iPad自动选择正确的文件

正确的尺寸应该是

CGRectMake(0,0,21,21)
术语“视网膜”和“非视网膜”与显示屏的分辨率有关,而与显示屏的尺寸无关。分辨率与每英寸(点)的像素数有关

在这种情况下编码时,尺寸将保持不变,只有图像分辨率会改变


要了解如何在应用程序包中使用不同大小的资源,您可以查看此链接

您还必须为视网膜显示使用相同的尺寸(320*480或480*320)。在视网膜或正常显示的情况下,您可以考虑这些值。