iPhone 4.0屏幕分辨率和编写健壮的代码

时间:2010-06-08 08:41:50

标签: iphone objective-c xcode

有没有人知道现有应用程序在新的屏幕分辨率方面在iPhone 4.0上运行时会发生什么?我假设,就像为iPad开发一样,代码中不应该有硬编码的屏幕分辨率。

我也喜欢有关编写健壮代码的最佳方法的建议,以便在任何设备上都能正常工作。例如,检测屏幕分辨率是不够的 - 在iPad上屏幕体积更大,因此您可以在屏幕上显示更多项目。在新的iPhone上,屏幕具有相同的物理尺寸但分辨率更高,因此很可能你不想显示更多的项目,只是更高分辨率的版本。

任何帮助都会有用,

此致

戴夫

编辑:我已经阅读了其他类似的帖子,我想我真正想知道的是为所有App Store设备编写代码的推荐方法是什么,以便a)所有工作b)做得最好使用该设备。

1 个答案:

答案 0 :(得分:1)

UIKit已经过重新设计,以便旧的应用程序可以在iPhone 4中不加修改。您可以做几件事,一些是程序性的,另一些只是向应用程序包中添加更高分辨率的图像。

首先,最简单的是,您可以添加应用程序使用的新双重图像,名称后缀为@ 2x。即,Event.png以及Event@2x.png。如果在较高分辨率下运行,[UIImage ImageNamed:]会自动查找带有此后缀的文件。

所有其他UIKit东西现在使用点而不是像素。因此,对于新旧应用程序,全屏仍然是320 x 480点。这几乎意味着一切都会起作用,包括触摸等。虽然它们现在可能会返回一小部分。

到目前为止唯一真正的问题似乎是你使用CGBitmapContextCreate,因为它使用像素并需要一些jiggery - pokery。