视网膜在我的开发者iphone上工作吗?
我正在iPhone5上测试我的应用程序 我复制了一个名为image1.png的图像,然后image1@2x.png,并在iPhone5上试用,在我代码的某些部分:视网膜在我的开发者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
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纸上,然后再打印一个大的图像 打印到纸上的图像通常具有相同的度量(英寸或厘米),但结果的质量会发生变化