【发布时间】:2011-02-23 23:23:28
【问题描述】:
当我为应用商店做准备时,我正在将我的应用程序从 3.x 移动到 4.x,并发现我需要拥有所有自定义 png 的 2 个副本 - 我的问题是如何确定要显示的 img什么时候。示例 - 我怎么知道显示 Find.png 与 Find@2x.png
寻找 4.x 特定的 api 是“安全”还是“正确”,还是 iphone 有办法确定您在运行时使用的平台?
提前谢谢你
【问题讨论】:
标签: objective-c
当我为应用商店做准备时,我正在将我的应用程序从 3.x 移动到 4.x,并发现我需要拥有所有自定义 png 的 2 个副本 - 我的问题是如何确定要显示的 img什么时候。示例 - 我怎么知道显示 Find.png 与 Find@2x.png
寻找 4.x 特定的 api 是“安全”还是“正确”,还是 iphone 有办法确定您在运行时使用的平台?
提前谢谢你
【问题讨论】:
标签: objective-c
当您使用标准 API 时,手机会在必要时处理抓取 @2x 版本。例如,如果您使用[UIImage imageNamed:@"Find.png"]; 并在 iPhone 4 上运行,它会自动加载 Find@2x.png。
【讨论】:
[[UIDevice currentDevice] model];
[[UIDevice currentDevice] systemName];
[[UIDevice currentDevice] systemVersion];
【讨论】:
如果您使用UIImage 的imageNamed: 方法,则@2x 业务将为您处理。
否则你可以检查屏幕的比例,如this question
【讨论】:
如果您的应用程序在(我相信)iOS 4.2 或更高版本上运行并且图像是 PNG 文件,您可以替换以下调用:
[UIImage imageNamed:@"Find.png"];
简单地说:
[UIImage imageNamed:@"Find"];
在更高版本的操作系统上,imageNamed 尝试将传入参数视为图像的根名称,而不是特定图像名称本身。在这种情况下,它具有内置智能,可以加载最适合设备的图形。
【讨论】: