需要对iOS xcasset目录进行一些解释

需要对iOS xcasset目录进行一些解释,ios,iphone,xcode,xcasset,Ios,Iphone,Xcode,Xcasset,我对iOS开发完全陌生。我想用Sprite工具包框架做一个小游戏,我已经被xcasset目录卡住了 假设我的iPhone4S有一张320x320像素的图像,分辨率为960x480像素。我把它放在xcasset目录中的“iPhone2X”上,对吗(cp.下图) 现在,我需要160x160的“iPhone 1x”和640x640版本的图像吗?iPad呢?就像素而言,“iPad1X”和“iPad2X”到底意味着什么?在我的例子中,“iPad1x”也是320x320和“iPad2x”640x640吗

我对iOS开发完全陌生。我想用Sprite工具包框架做一个小游戏,我已经被xcasset目录卡住了

假设我的iPhone4S有一张320x320像素的图像,分辨率为960x480像素。我把它放在xcasset目录中的“iPhone2X”上,对吗(cp.下图)

现在,我需要160x160的“iPhone 1x”和640x640版本的图像吗?iPad呢?就像素而言,“iPad1X”和“iPad2X”到底意味着什么?在我的例子中,“iPad1x”也是320x320和“iPad2x”640x640吗

编辑-1:谢谢你的链接。但也没有讨论iPad的具体用途以及它们在像素方面的关系

编辑-2:虽然我使用了4096x4096像素的图像来生成启动图像(cp.下图),但使用Asset Catalog Creator调整大小的结果并不令人满意:


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

 - 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(401ppi)与实际屏幕大小(以像素为单位)无关。

看起来你的天空图像不是为“通用设备”设置的,这就是为什么它询问iPad图像的原因。有关为什么需要特定于设备的图像的更多信息,请参阅

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


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

可能的副本看看:@BoilingLime:你的链接有点离题了。它只显示有关应用程序图标和启动图像的信息。但我问的是其他图像集以及它们之间的关系。不过还是要谢谢你。好吧,不过你还是需要知道不同设备之间的配给。你可以用计算器找出你需要的尺寸。否则请查看:。我知道图像的大小在iOS上是个麻烦。这个工具非常有用,值得花钱购买@谢谢你的回复。好的,我会看看这个工具,尽管在编码旁边调整一些图像的大小是一种冥想;-)但我认为所有重要的是不同设备的不同显示分辨率,其中1-3G有264 ppi,iphone4,5,6有326ppi,iphone6+401ppi。因此,在1x,2x,3x独立于实际屏幕大小的像素…我认为你不需要知道或关心的ppi。例如,如果您正在制作一个按钮,苹果建议它至少为40x40。2X版本为80x80,3X版本为120x120。因此,对于任意图像,我会将其设置为3倍。在Plus上的模拟器中进行测试,以确保其大小正确。然后将其调整1/3(1x)和1/2(2x)。然后添加到资产目录。感谢您的回复。为了理解为什么需要不同的图像版本,并且它不依赖于实际的屏幕大小(以像素为单位),我发布了上面的列表。谢谢你的回答。我很困惑。我现在有一张尺寸如下的图片(1x 320x320,2x 640x640,3x 960x960)。在纵向模式下,这应该可以填满我的iPhone4屏幕的宽度,不是吗?但它只覆盖了屏幕的一半。。。我正在使用SpriteKit,sprite的比例设置为1.0。非常感谢您的帮助-谢谢@salocinx我不熟悉SpriteKit,但我启动了一个新的SpriteKit项目并进行了研究。在项目中创建的视图是我所期望的:320 x 480点(实际上是640 x 960像素)。视图从设置为768 x 1024点的文件加载了一个场景。我的精灵加载了320 x 320点,它从资源集中加载了2倍的图像,正如我预期的那样。这意味着精灵大约是场景宽度的一半。我将场景宽度更改为320并保存了它,现在我的精灵占据了结果屏幕的全部宽度。嘿@salocinx更改场景宽度是否解决了问题?如果是的话,你能投票支持这个答案吗?我是新来的,所以可以使用代表!谢谢好极了!很高兴能帮上忙。