【问题标题】:Some explanations for iOS xcasset catalogs required需要对 iOS xcasset 目录的一些解释
【发布时间】:2015-07-04 19:51:19
【问题描述】:

我对 iOS 开发完全陌生。我想用 Sprite-Kit 框架做一个小游戏,我已经卡在 xcasset 目录了。

假设我的 iPhone 4s 有一个 320x320 像素的图像,其分辨率为 960x480 像素。我把这个放到 xcasset 目录中的“iPhone 2x”,对吧(cp.下图)?

现在,“iPhone 1x”需要 160x160,“iPhone 3x”需要 640x640 版本的图像吗? iPad 呢?就像素而言,“iPad 1x”和“iPad 2x”究竟是什么意思?在我的示例中,“iPad 1x”也是 320x320 和“iPad 2x”640x640 吗?

EDIT-1:感谢the possible duplicate 的链接。但也没有讨论 iPad 版本的确切用途以及它们在像素方面的关系。

EDIT-2:尽管我使用 4096x4096 像素的图像来生成启动图像(参见下图),但使用 Asset Catalog Creator 调整大小的结果并不令人满意:

【问题讨论】:

  • @BoilingLime:您的链接有点离题。它仅显示有关应用程序图标和启动图像的信息。但我问的是其他图像集以及它们之间的关系。不过还是谢谢。
  • 好的,但你仍然是不同设备之间的配给。您可以使用计算器找出您需要的尺寸。否则看看:itunes.apple.com/us/app/asset-catalog-creator-app/…。我知道图像的大小在 iOS 上很麻烦。这个工具非常好用,值得花钱!
  • @BoilingLime:感谢您的回复。好的,我会检查一下这个工具,虽然除了编码之外调整一些图像的大小是一种冥想;-) 但我认为所有重要的是不同设备的不同显示分辨率,其中 1-3G 有 264 ppi,iPhone 4,5 ,6 有 326 ppi 和 iPhone 6+ 401 ppi。因此导致 1x、2x、3x 与实际屏幕大小(以像素为单位)无关...

标签: ios iphone xcode xcasset


【解决方案1】:

我认为重要的是这些设备的不同显示密度:

 - iPhone 6 Plus                       401 ppi 
 - iPhone 6                            326 ppi 
 - iPhone 5, 5c, 5s, iPod touch        326 ppi
 - iPhone 4, 4s, iPod touch            326 ppi
 - iPad mini (2G/3G)                   326 ppi
 - iPad (3G/4G), iPad Air              264 ppi
 - iPhone 1, 2, 3                      163 ppi

因此导致 1x (264 ppi)2x (326 ppi)3x (401 ppi) 与实际屏幕尺寸无关以像素为单位。

【讨论】:

  • 我认为您不需要了解或关心 ppi。例如,如果您正在制作一个按钮,Apple 建议它至少为 40x40。 2X 版本为 80x80,3X 版本为 120x120。因此,对于任意图像,我会将其设为 3 倍。在 Plus 上的模拟器中对其进行测试,以确保其尺寸合适。然后将其大小调整为 1/3 为 1x 和 1/2 为 2x。然后添加到资产目录。
  • 感谢您的回复。我已经发布了上面的列表,以了解为什么需要不同的图像版本并且它不依赖于以像素为单位的实际屏幕尺寸。
【解决方案2】:

您的 Sky 图像似乎没有设置为“通用设备”,这就是它询问 iPad 图像的原因。请参阅Apple's Asset Catalog Help,了解有关您为什么需要特定于设备的图像的更多信息。

选择天空图像名称,然后按 Command-Opt-4 打开属性检查器。上面写着“设备”的地方将其设置为“通用”,您应该只看到带有 1x、2x 和 3x 图像井的“通用”部分。

此外,您的示例图片尺寸似乎不正确。如果您的@2x 图像(适用于 iPhone 4s)是 960x480,那么 1x 图像将是 480 x 240。(而您在 iPhone 6+ 上使用的 3x 图像将是 1440 x 960。)您的 1x 图像应该是您的任何点大小想要,2x 应该是两个维度的两倍,3x 应该是 1x 两个维度的三倍。

【讨论】:

  • 感谢您的回答。我很迷茫。我现在有一个具有以下尺寸的图像(1x 320x320、2x 640x640、3x 960x960)。这应该以纵向模式填充我的 iPhone 4 屏幕的宽度 - 不是吗?但它只覆盖了大约一半的屏幕......我正在使用 SpriteKit 并且精灵的比例设置为 1.0 非常感谢一些帮助 - 谢谢!
  • @salocinx 我对 SpriteKit 不熟悉,但我启动了一个新的 SpriteKit 项目并进行了查看。在项目中创建的视图符合我的预期:320 x 480 points(实际上是 640 x 960 pixels)。该视图从设置为 768 x 1024 点的文件中加载了 SKScene。正如我所料,我的精灵以 320 x 320 点加载,它从资产集中加载了 2x 图像。这意味着精灵大约是场景宽度的一半。我将场景宽度更改为 320,保存它,现在我的精灵占据了结果屏幕的整个宽度。
  • 嘿@salocinx 更改您的 SKScene 宽度是否解决了您的问题?如果是这样,您可以投票赞成这个答案吗?我是在 SO 上发帖的新手,可以使用代表!谢谢!
  • 甜蜜!很高兴能提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多