我正在使用iPhone 4 Simulator调试应用程序。我从模拟器菜单中选择了它(device = iPhone 4)。当我运行应用程序时,屏幕大小报告为480x320 !! ??
我的这个应用程序是否有必要修改(最初为3G / 3gs构建)以便在iPhone 4上运行(是的,我已将所有艺术作品重新创建为960x640并且艺术作品在捆绑包上,但它将它缩小到一半大小...因为它在3G / 3GS模式下运行,而不是高分辨率。
运行
CGRect cgRect =[[UIScreen mainScreen] bounds];
将导致(0,0,480,320)。
任何线索?
感谢您的帮助。
答案 0 :(得分:3)
一个 点 不一定 对应屏幕上的一个 像素 。
示例项目,下载here。
答案 1 :(得分:3)
iPhone正在进入分辨率独立性。这意味着事物不是以像素为单位,而是以点为单位。点并不总是与像素对应。
iPhone 3GS(和之前版本)的屏幕尺寸为480x320,两个点都是像素。它们在这些设备上对应,但在较新的设备(如iPhone 4)中却没有。
iPhone 4的屏幕尺寸为960x640像素,但其逻辑屏幕尺寸仍为480x320点。
这使您可以将帧,点和大小值保持为原始值,并且仍支持更大分辨率的设备。
在iPhone 4上,您需要在图像文件名称的某个位置使用@ 2x,它将在更高分辨率的设备上自动使用。
加载@ 2x图像时,它们将作为原始分辨率加载,但它们的尺寸属性减半,以便能够使用逻辑点测量。
例如,原始大小为960x640的图像会在要求时将其大小报告为480x320。
答案 2 :(得分:1)
而不是使用currentMode
CGSize pixelBufferSize = [[[UIScreen mainScreen] currentMode] size];
您将获得实际解决方案