如何为iPhone 6/7定制的边缘到边缘图像指定尺寸?

60
假设我想在 iPhone 应用中使用一张捆绑图片,并让它占用全部可用屏幕宽度,例如横幅。我会创建一张宽为 320pxmy_banner.png,一张宽为 640pxmy_banner@2x.png 和一张为 iPhone 6 plus 宽度 1242pxmy_banner@3x.png。但是,iPhone 6 的分辨率为 750×1334 像素。它仍然与拥有 640px 宽度的 iPhone 4 和 5 共享 @2x 后缀。

有没有推荐的方法或良好的方法来指定已针对 iPhone 6750px 宽度进行优化的图像文件?看起来不能在 资产目录 中完成吗?是否应该通过编程来完成?还有其他后缀可以用于 iPhone 6 吗?

iPhone 4,5,6 screen sizes (图片来源:http://www.iphoneresolution.com


苹果不是说 i6+ 的图片要使用 @3x 吗? - Lior Pollak
4
iPhone 5和iPhone 6的屏幕比例相同。你需要为iPhone 6分辨率准备2倍图像,它将在不影响iPhone 5的情况下被降采样。 - Desdenova
1
@CraigOtis 你可以在资源目录中创建多个图像,并在检查屏幕边界后使用它们。但在我看来,这是不必要的过度设计。 - Desdenova
2
@Desdenova 同意。我希望(对于OP)会有一些类似的奖励前缀,就像苹果推出iPhone 5时一样。例如:background@2x.pngbackground-750w@2x.png - Craig Otis
1
@Jonny,这两件事情并不一样。我对不同设备的分辨率(也不是PPI)没有困惑。我认为让你感到困惑的是表格中的“渲染像素”与“物理像素”。我不喜欢1.171875倍的上采样,并希望通过使用针对设备的“实际屏幕分辨率”进行优化的图像来避免它。对于iPhone 6而言,它是750x1334。如果您知道iPhone 6无法以此分辨率显示图像资源,那么这将是新信息,并且可以成为回答此问题的好方法。但我认为情况并非如此。 - Niklas Berglund
显示剩余13条评论
12个回答

0

我检查了通过Xcode 6从资源目录生成的启动图像的命名约定,例如,iPhone 6+的横屏版本为: LaunchImage-Landscape-736h@3x.png

基于此,我推测对于视网膜设备来说,假设有一个基本文件desert.png,应该如下:

  • desert@2x:iPhone 4s(320 x 420)
  • desert-568h@2x:iPhones 5、5C和5S(320 x 568)
  • desert-667h@2x:iPhone 6(375 x 667)
  • desert-736h@3x:iPhone 6+(414 x 736)
  • desert@2x~ipad:iPad(1024 x 768)

3
-667h@2x 后缀本身并没有神奇的地方,对吧?如果有一张名为 my_image-667h@2x.png 的图片,在指定图片 my-image.png 时它不会自动被使用,对吗? - Niklas Berglund
1
不应该指定“.png”部分,让SDK选择正确的图像。 - Rivera
我有些粗心。但我相当确定-667h@2x后缀没什么神奇的。 - Niklas Berglund
1
@NiklasBerglund 我在这里施展了一些魔法 :) http://stackoverflow.com/a/26612635/2790648 - Kevin Delord
这似乎不起作用...你能让它工作吗,还是这个命名约定纯粹是猜测? - Crashalot

-2
首先,您需要配置imageView以覆盖整个屏幕,Autolayout将对此工作有很大帮助,请查看下面的链接,并找到如何使用Storyboards固定约束(Leading Space、Trailing Space、Top Space和Bottom Space):

http://www.thinkandbuild.it/learn-to-love-auto-layout/

enter image description here

第二步是在您的图像资源上创建特定于设备的图像集(如下图),以根据设备显示不同的图像。

enter image description here

看看这个信息图: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

它解释了旧版iPhone、iPhone 6和iPhone 6 Plus之间的差异。您可以看到点数、渲染像素和物理像素的屏幕尺寸比较。

就这些。

enter image description here

enter image description here

如果您遇到任何问题,请给予反馈。


谢谢,但这个问题与布局约束无关。它涉及到不同设备之间的像素比例。苹果并没有提供一种方便的方式(类似于@2x,@3x)来指定针对iPhone 6进行优化的图像。 - Niklas Berglund

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接