为什么iPhone 6使用@2x图像资源?

24

iPhone 6 plus 使用 @3x 图像素材,而 iPhone 6 使用 @2x 图像素材 - 就像 iPhone 4iPhone 5 一样 (Image resolution for new iPhone 6 and 6+, @3x support added?)。

iPhone 5iPhone 5CiPhone 5S 的屏幕分辨率为 640x1136。而 iPhone 6 的屏幕分辨率为750x1334

那么,iPhone 6会将图像从640x1136缩放吗?有没有办法使图形定制为iPhone 6的略高屏幕分辨率呢?

编辑:我知道PPI相同。但是举个例子,如果我想让一个图像在上占用所有可用的宽度。 我创建一个名为my_image@2x.png的640x200像素图像。 在iPhone 6上,它将被放大到750像素宽度,对吧?


1
理论上,在运行时,你可以操纵swizzle imageNamed:方法以特别选择@3x(或任何其他符号的名称)图像,如果设备是iPhone 6,但我不建议在生产应用中这样做。 - Kaan Dedeoglu
4
最近收到了一些负评,但不知道为什么。如果您要给我负评,请留言告诉我原因。谢谢! - Niklas Berglund
值得一提的是,如果您正在使用自动布局,您的应用程序将在iPhone 6上有更多的空间来显示内容(不包括6 Plus)。如果没有使用自动布局,您的应用程序将被拉伸/缩放。这是为了支持任何使用基于点的X位置但没有意识到宽度可能超过1136/568的应用程序。例如,一个希望将按钮与右边框距离为30个点的应用程序可能会使用X-pos 538.0。 - Craig Otis
@CraigOtis 一个不使用自动布局的应用程序不会被拉伸。您仍然可以在不同的屏幕尺寸上使用弹簧和支架或手动布局。自动布局只是让事情变得更容易而已。 - Rog
@RogerNolan 我的理解是,如果你没有使用自动布局,你的应用程序会被“拉伸”以适应6/6 Plus屏幕?我有一个应用程序没有更新使用自动布局,它在模拟器中看起来确实只是被“放大”以适应屏幕。 - Craig Otis
可能是因为你没有正确的启动图片 - 这就是 iOS8 决定是否缩放的方式。当然,如果没有自动布局,它可能会很丑 :-) 最快速地添加一个启动“图片”的方法是使用一个故事板 http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/。 - Rog
3个回答

6

1
天啊,我讨厌在我的应用程序中添加背景图像,因为这个问题 :( - user1453351

5

iPhone 6 (非Plus版本)的DPI与iPhone 4-5s相同,即326 dpi。因此,2x图像仍然适用。


1
是的,但它有更多英寸。比如说,如果我为@2x创建一个640x200像素的图像,在iPhone 6上,这张图像将需要放大到750像素的宽度,对吧?或者我有些地方理解不了吗? - Niklas Berglund
也许这会有所帮助:http://www.paintcodeapp.com/news/iphone-6-screens-demystified - Casey Fleser
7
不行。一张在2x设备上的640x200像素(不是点)图片将以320x100个点的大小渲染。iPhone 4和5型的屏幕宽度为320个点。iPhone 6的屏幕宽度为375个点,因此该图片将不会填满屏幕的宽度,除非您进行设置。 - rmaddy
2
我明白了,所以一些图像在iPhone 6上会按比例缩小,因为它们没有被缩放。但我仍然不明白为什么没有一种方式可以指定适用于iPhone 6分辨率的图像。假设您有一张640x200像素的图像,您想要将其水平拉伸100%。 - Niklas Berglund
1
@NiklasBerglund,因为iPhone 6中有额外的像素-这不是关于拉伸图像,而是关于屏幕上的额外空间。如果您正在谈论应该被拉伸的背景图片-那很好,并且使用SDK完全支持(resizableImageWithCapInsets:resizingMode:方法)。如果没有,您将在此图像周围拥有额外的空间。更大的屏幕-更多的空间,利润! - m8labs
显示剩余4条评论

2

Marat AL提到的这篇帖子是正确的。补充一下他的回答:

iPhone 6的分辨率可能不同,但每英寸像素密度(PPI)相同。

  • 分辨率是指绝对像素数。
  • 像素密度(又称每英寸像素-PPI)是指每英寸的相对像素数,iPhone 6和之前的iPhone相同,但iPhone 6 Plus不同。

这个帖子中了解更多信息。

因此,iPhone 6使用与iPhone 4、5和5S相同的@2x图像。

这篇帖子肯定会消除您对iPhone 6分辨率的所有困惑。

编辑

这篇文章帮助我更好地了解了iPhone 6和6 Plus的像素和缩放


1
我仍然不明白为何针对 640x1136 分辨率创建的图像可以在 750x1334 分辨率上显示而无需进行放大。 我知道 iPhone 6 plus 进行降采样,但据我所知 iPhone 6 不会这样做? - Niklas Berglund
那么,在iPhone 5和iPhone 6上使用@2x图像,并更新您的应用程序以使用自动布局时,该图像将占用相同数量的像素,但在屏幕上占用较少的物理空间?也就是说,如果它显示在表行单元格的左侧,它可能只覆盖单元格最左侧的10%,而不是最左侧的15%等等? - Craig Otis
@CraigOtis 我认为我同意使用点数和布局。我知道如何为iPhone 6配置我的应用程序,但是我不明白针对640x1136优化的图像如何不需要放大到750x1334。假设您创建了一个水平100%宽度的图像。 - Niklas Berglund
1
这是一个有趣的情况 - 如何设计@2x图像,以便用作100%宽度背景?我不知道。最终,您必须知道可用的硬件像素,才能说“它应该是640像素宽”或“750像素宽”。您是否选择750并让它在iPhone 5上缩小?还是选择640并在iPhone 6上放大?我没有这个非常好的问题的答案。 - Craig Otis
3
@CraigOtis 没错。在 iPhone 6 上,图片将以比例缩小,但是如果您想要100%的宽度或高度,例如用于占据100%宽度的背景图像、横幅等等,该怎么办呢?我找不到指定iPhone 6特定资产的方法。也许我应该创建另一个问题,专门询问这个问题。如果必须通过编程来完成,对我来说似乎有点奇怪。 - Niklas Berglund
显示剩余6条评论

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