【发布时间】:2012-12-25 17:24:26
【问题描述】:
我知道以前有人问过类似的问题,但我真的处于可怕的境地。
我正在构建一个希望在 iPhone 3G、iPhone 4 和 iPhone 5 上运行的应用程序。
我是 iOS 开发的初学者,到现在为止,我已经编写了大量仅适用于 iPhone 模拟器的 UI 代码。我专注于通用语言和 SDK 功能以了解通用 iOS 开发,因此大多忽略了模拟器提供给我的之外的任何分辨率支持。
现在,我面临着这些不同 iPhone 版本之间的便携性要求,我很困惑。首先让我谈谈我对 iPhone 3 和 iPhone 4 屏幕支持细节的了解,如果我做错了什么,请纠正我(暂时完全忽略 iPhone 5):
系统假定一个基于 320x480 POINT 的查看区域。在 iPhone 3 中,实际屏幕尺寸相同,但 iPhone 4 使用的是实际 640x960 像素尺寸的屏幕。
我们根据 320x480 大小编码和生成视图。我们提供普通分辨率图像(例如 100x100 大小的 some_image.png)和带有 "@2x" 后缀的高分辨率版本。 (200x200 大小的 some_image@2x.png)都在同一个应用程序包中。
当调用
UIKit图像加载方法时,例如UIImage或UIImageView,系统会根据当前设备(iPhone 3或iPhone)选择正确版本的图像并加载它们4).
到目前为止,为了支持低分辨率和高分辨率 iPhone 3G 和 iPhone 4,我一直谨慎地提供这三个步骤。
假设我有一个尺寸为 100x100 的图像,我将在 UIImage 对象中使用它。我也提供 200x200 高分辨率版本,我认为这适用于带有 "@2x" 后缀的 iPhone 4 和 iPhone 5。
但假设我有一个尺寸为 320x480 的背景图片,覆盖整个背景,我提供 640x960 版本的 "@2x" strong> 后缀也是如此。
但是在尺寸为 640x1136 的 iPhone 5 屏幕上会发生什么?我应该准备一个 iPhone5 分辨率图像并将其加载到 if(IPHONE5 == true) 条件中吗?
处理这个问题的正确方法是什么?
【问题讨论】:
标签: objective-c ios uikit screen-resolution iphone-5