Ios 关于Xcassets、全屏图像和iPhone4、5、6和6+;

Ios 关于Xcassets、全屏图像和iPhone4、5、6和6+;,ios,iphone,xcode,Ios,Iphone,Xcode,这个问题在StackOverflow上被回答了很多次,但我认为没有人以可接受的方式回答这个问题 我看到很多人在猜测,很多人都错了,很多人通过创建类扩展来解决这个问题,但我问的是直接的答案 这是: 我有一个iOS 7应用程序,仅适用于iPhone,它适用于所有能够运行iOS 7的iPhone(iPhone 4、iPhone 5、iPhone 6和6+)。因此,我们需要1倍、2倍和3倍的资产。有人在一个问题中说,我们不需要1x,因为没有iPhone能够用1x运行iOS 7。错了,我们需要1x,因为我

这个问题在StackOverflow上被回答了很多次,但我认为没有人以可接受的方式回答这个问题

我看到很多人在猜测,很多人都错了,很多人通过创建类扩展来解决这个问题,但我问的是直接的答案

这是:

我有一个iOS 7应用程序,仅适用于iPhone,它适用于所有能够运行iOS 7的iPhone(iPhone 4、iPhone 5、iPhone 6和6+)。因此,我们需要1倍、2倍和3倍的资产。有人在一个问题中说,我们不需要1x,因为没有iPhone能够用1x运行iOS 7。错了,我们需要1x,因为我们有iPad2,可以运行iOS 7,用户可以运行我们的iPhone应用程序或iPad应用程序

当您在Images.xcsets上选择设备特定资源并仅选择iPhone选项时,将显示4个插槽:
1x
2x
Retina 4 2x
3x

图像必须有多大尺寸才能填充这些插槽

第一次猜测

  • 1x
    =320 x 480
  • 2x
    =640 x 960
  • retina42x
    =640x1136
  • 3x
    =1242x208
如果这是正确的,iphone6将不得不使用缩小的
3x
图像或放大的
retina42x
图像,正如一些人所说。那以后就太可怕了

第二次猜测

  • 1x
    =320 x 480
  • 2x
    =750 x 1334
  • retina42x
    =640x1136
  • 3x
    =1242x208
这就是iphone4必须放大的部分

第三次猜测

  • 1x
    =320 x 480
  • 2x
    =640 x 960
  • retina4 2x
    =750 x 1334
  • 3x
    =1242x208
这是给视网膜4一个更大的资产,希望它能缩小规模,这比扩大规模更好

我的问题很简单:哪一个是正确的?我希望第三个是正确的。

先猜猜看

实际上,您可以在资源文件中查看所需的大小:

注意:iOS 7,8的iPhone肖像完全相同

图像必须有多大尺寸才能填充这些插槽

苹果已经回答了这个问题。看见在关于堆栈溢出的许多问题中引用了该文档

为了避免出现“回答上的链接”区域,以下是苹果提供的部分表格:


我的问题很简单:哪一个是正确的


你应该参考苹果的文档,停止猜测。苹果的文档告诉你使用什么。没有必要猜测。

一段中的简短答案是,如果你猜测,不要使用任何答案,因为我认为这三个答案是错误的


对于尺寸(宽度x高度)等于物理设备宽度和高度(即750 x 1334,适用于iphone 6/6s)的每个设备型号,必须使用一个图像,然后在运行时检查设备型号,并根据型号加载相应的图像。在处理边到边或全屏图像时,不需要使用(@?x)图像。

您是说启动屏幕还是说一些全屏图像资源?如果是关于启动屏幕,为什么不使用
xib
来代替呢?您为什么要猜尺寸?Xcode向您展示。例如,为图像资源选择2x正方形。查看“实用程序”窗格的“属性检查器”选项卡。尺寸显示在那里。@Azat iOS 7!没有发射屏幕@luk2302据我所知,OP关于在iPhone 6上拉伸图像的问题,而该设备不运行iOS 7,我认为你的假设对于第三种情况是不正确的——“这给了视网膜4更大的资产,希望它能缩小规模”。如果这是真的,那么从逻辑上来说,你的陈述“有人在一个问题中说我们不需要1x,因为没有iPhone能够运行1x的iOS 7。错了,我们需要1x,因为我们有iPad2”,是不正确的。若系统可以缩小图像的比例,你们应该可以省略1x图像。对不起,这就是我试图得到的答案。这篇苹果文档并没有回答很多问题,也带来了更多的疑问。例如,第3列和第4列告诉我@2x同时是640x960和640x1136。这个医生没有回答我该如何填补这些空缺。我只有一个2x,我想涵盖所有的iPhone。@SpaceDog-我引用了你提出的确切问题。如果您有不同的问题,那么您需要问:)不幸的是,此预期大小行未显示在Xcode 6.3.1上。您需要查看
属性检查器
以查看此信息(右侧Xcode窗口(实用程序)中的第三个选项卡)Xcode如何知道图像的大小,你需要提供它。@luk2302-我不同意。Xcode有义务知道图像的使用位置,并根据interface builder上的点大小计算预期大小。问题是Xcode在所有可能的方面都是半熟的。这是一个例子,不允许本地化。实现不好。我同意如果您提供至少一个图像,例如@2x,Xcode可能应该计算其他图像大小的大小。不幸的是,这显然不起作用:/