1

当我为 iPhone、iPhone 视网膜、iPad、iPad 视网膜的 ImageView 创建图像时,我应该创建 4 个图像吗?

例如对于我使用的硬币图像->

  1. 硬币.png
  2. 硬币@2x.png
  3. coinIpad.png
  4. coinIpad@2x.png

我可以只创建最大尺寸的图像(imageIpad@2x.png)并在 Xcode 中选择 Aspect Fit 吗?

[UIImage imageNamed:@"imageIpad@2x.png"];

执行此操作的常用方法是什么?

4

4 回答 4

1

仅创建一个图像并依靠设备调整它的大小是:

  1. 效率低下 - 您将在运行时使用大量资源,而这些资源应该忙于做其他事情
  2. 不是预期的方式 - 您应该创建 2 个图像(视网膜和非视网膜)。如果您希望为 iPad 使用另一组图像,您应该使用以下命令检查您在运行时运行的设备:

[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad

或将您的项目拆分为 2 个单独的目标,并将 2 组图像分别添加到它们的正确目标。

于 2013-07-02T15:31:23.130 回答
1

按照您的要求回答您的问题:是的,您可以只使用最高分辨率的图像,并将其安装到每个设备当前需要的尺寸。您可以UIImage按照您的建议,通过使用命名资源初始化,并将其分配给UIImageView每个设备类型中具有适当框架的 a 。

我会建议这样做吗?不!

为什么?

  1. 命名约定(~ipad 和@2x)使程序员可以轻松地为每种分辨率提供完美贴合的艺术品。
  2. 您或您的设计师分别完全控制艺术品的展示方式
  3. 它可以节省内存和 CPU,因此甚至可以节省一点电池电量。
  4. 当涉及到非常详细或无法很好调整的小图形时,您可以考虑为更适合当前分辨率的较低分辨率创建稍微不同的图形

因此,如果您只想缩小高分辨率图像的尺寸,请下载功能强大但便宜的东西,例如 gimp 并自己调整一次(而不是让成千上万的手机一次又一次地这样做),用流行的名称保存它们并将它们包含在界。

于 2013-07-02T16:25:07.933 回答
0

你需要做的就是在你想打电话的时候投入硬币。

例如:

[UIImage imageNamed:@"coin"];

但是,当将图像放入资源文件夹时,将其命名coin@2x.png为视网膜图像和coin~ipad.pngipad 图像。

Xcode 将相应地调用适当的图像。

于 2013-07-02T16:12:08.580 回答
0

如果您只想拥有可以创建一次并在不同情况下使用的可调整大小的资产 - 看看这个UIImage+PDF类别,它可以帮助您使用 PDF,它作为矢量格式可以缩放到任何大小而不会损失质量.

最近添加了缓存,这也应该是一个帮助。

于 2013-07-02T17:18:21.523 回答