视网膜在我的开发者iphone上工作吗?

视网膜在我的开发者iphone上工作吗?,iphone,ios,uiimageview,uiimage,Iphone,Ios,Uiimageview,Uiimage,我正在iPhone5上测试我的应用程序 我复制了一个名为image1.png的图像,然后image1@2x.png,并在iPhone5上试用,在我代码的某些部分: UIImage *myImage = [UIImage imageNamed:@"image1.png"] ; CGFloat imageWidth = myImage.size.width; CGFloat imageHeight = myImage.size.height; NSLog(@"image %f %f", im

我正在iPhone5上测试我的应用程序

我复制了一个名为image1.png的图像,然后image1@2x.png,并在iPhone5上试用,在我代码的某些部分:

UIImage *myImage = [UIImage imageNamed:@"image1.png"] ;

CGFloat imageWidth = myImage.size.width;
CGFloat imageHeight = myImage.size.height;

  NSLog(@"image %f %f", imageWidth,imageHeight);

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;


NSLog(@"screen %f %f", screenWidth, screenHeight);
在iphone中运行时,我在控制台中看到:

2013-04-05 13:13:48.386 Vallabici[2413:907] image 320.000000 57.000000
2013-04-05 13:13:48.389 Vallabici[2413:907] screen 320.000000 568.000000
因为它使用的是正常的屏幕而不是视网膜


怎么可能呢?

图像的大小不应该在视网膜设备上改变,而应该是比例。 要获取图像的比例,请添加以下日志:

 NSLog(@"scale %f", myImage.scale);

在视网膜设备上,图像的大小不应该改变,只应该改变比例。 要获取图像的比例,请添加以下日志:

 NSLog(@"scale %f", myImage.scale);

bounds
返回屏幕的点大小,而不是像素大小


size

bounds
返回屏幕的点大小,而不是像素大小


大小也是如此,屏幕总是以像素为单位测量的

视网膜像素总是=非视网膜像素

通过代码,您将始终获得230x480的屏幕像素(在iPhone上<5)

不同之处在于图像的渲染方式:在视网膜显示器上,图像以双分辨率渲染

它就像打印机设备:你可以把一个小的图像打印到一张A4纸上,然后再打印一个大的图像


打印到纸上的图像始终具有相同的度量单位(英寸或厘米),但结果的质量会发生变化

屏幕始终以像素为度量单位

视网膜像素总是=非视网膜像素

通过代码,您将始终获得230x480的屏幕像素(在iPhone上<5)

不同之处在于图像的渲染方式:在视网膜显示器上,图像以双分辨率渲染

它就像打印机设备:你可以把一个小的图像打印到一张A4纸上,然后再打印一个大的图像

打印到纸上的图像通常具有相同的度量(英寸或厘米),但结果的质量会发生变化