【问题标题】:How to decide 1x, 2x and 3x image sizes based on the size of the corresponding UIImageView?如何根据对应的 UIImageView 的大小来决定 1x、2x 和 3x 的图像大小?
【发布时间】:2016-01-02 09:56:42
【问题描述】:

我的查询分为两部分:

1) 简单明了,我们如何确定1x, 2x3x 图像大小?

我发现这个 SO 问题最接近

what-should-be-3x-images-of-100x100 size UIimageView or UIButton

但是没有公认的答案,所以如果真的是这样,我有点困惑 所以如果我有一个 UIImageView 的大小,比如说,17 X 21 那么我的 1x 是 17X21,2x 是 34X423x51X63 吗?

2) 如果是这样的话,如果我的 UIImageView 尺寸也因屏幕尺寸而异,那么尺寸会是多少。

所以对于 iPhone 4s 320X480 如果我的 UIImageView17X21,对于 iPhone 6 375X667 它将是 20X29

那么我如何确定适合所有设备尺寸的图像尺寸 (1x, 2x & 3x)?

PS: 真的非常感谢您,因为这听起来可能是一个非常基本的问题,但我确实为此付出了很多努力,但即使经过大量搜索和阅读,也找不到具体令人满意的答案。

【问题讨论】:

  • 是的,除了你的数字有错别字之外,你是正确的。如果您更改图像视图大小,您可能想要更改图像大小,请使用最大的并允许框架缩小。
  • 是的,感谢您指出错字 Wain,更正了。所以你建议我只使用一张大尺寸的图片(保持宽高比),让框架完成剩下的工作?
  • “所以如果我有一个 UIImageView 的大小,比如说,17 X 21 那么我的 1x 是 17X21,2x 是 34X42,3x 是 51X63?”是 2) 不。对于 iPhone 6,它是相同的 2x 图像。对于 6s,它将是 3x(3x 令人困惑,因为它会在使用时被 iOS 缩小)。但你为什么要做出决定? API 自行完成。使用 UIKit 时,所有屏幕坐标对应 1x 分辨率。
  • 您是否在问如何为 iPhone 6/6+ 选择特定图像以考虑其更大的屏幕和不同的宽高比?
  • 是的,切达博。我很困惑,因为通常我们根据 UIImageView 尺寸决定 1x、2x、3x 图像尺寸,但即使 UIImageView 尺寸也会根据屏幕尺寸而变化。

标签: ios objective-c iphone uiimageview


【解决方案1】:

您应该考虑,而不是像素。

1

如果您的UIImageView 的大小为 17x21 ,那么您需要提供 3 张 17x21 像素、34x42 像素和 51x63 像素的图像。操作系统将根据应用运行的pixel density of the device 选择正确的。

2

确定 UI 元素大小的一种方法是使用Graphic 之类的软件。您可以绘制一个代表屏幕的矩形,并且 UI 元素只考虑点。这应该会让事情变得更容易。

【讨论】:

  • 感谢 appzYourLife,但实际上我的点尺寸会根据设备屏幕尺寸而变化。所以在 4 秒内我的 UIImageView 大小将是 17X21 点,但在 iPhone 6 的情况下它将是 20X29 点
【解决方案2】:

有点晚了,但我理解你的问题。

首先你需要知道点和像素的区别。

关键是当你在 Xcode 中时。像素是当你将 iPhone 屏幕的实际大小作为像素时。

在 4 秒内,1 px 等于 1 点。 在 5, Se, 6 , 1 点 2 px in 6s, 7s , 1 点 3 像素。

我会给你两个不同的例子来理解这一点。

示例 1

您希望在 Xcode 中为所有 iPhone 提供 100x100 的图像。所以您应该制作:

1x 大小 100x100 像素在 Ps 或 Sketch 中。 Ps 或 Sketch 中的 2x 大小 200x200 像素。 Ps 或 Sketch 中 3x 大小 300x300 像素。

另一个例子回答你的问题。因为你有纵横比收音机。这意味着你希望你的图像被缩放。

你有 4s 的 17x21 点,那么它应该是 17x21 像素。 iPhone 6 有 20x29 点。它应该是 40x58 像素。 你有 6s 和 7s 的东西,所以应该是 3 X 的东西。

因为你有纵横比和缩放。只要你保持1x for 4s,2x for 5, 6, SE, 3x for 6s and 7s。

所以你有 40x58 而不是 iPhone 6 的 34x42 (17x21) x 2。 Apple 推荐 40x50 以获得更好的分辨率。当您使用纵横比时,有时很难选择图像尺寸。如果您使用 32x42 而不是 40x58 ,这没有任何问题,但分辨率会小于 40x58。

希望它有效。

【讨论】:

  • 非常好的观点@user7411527,但我在这里有点困惑。5/5C/5S/SE 不会有不同
  • 请忽略我之前的评论(输入错误,一段时间后无法编辑):非常好的观点@user7411527,但我在这里有点困惑。 5/5C/5S/SE 的图像视图大小不会与 iPhone 6 不同吗?这两个类别都使用 2x 大小的图像,那么在这种情况下我们将如何决定 2x 图像呢?就像如果 imageView 的大小为 17x21 在 4s 中,那么它在 5/5C/5S/SE 中将是 17x25,但在 6/6s 中将是 20x29。那么什么是 2x 图像。 iPhone 5 系列应该是 2 * (17X25) 即 34x50,而 6 系列应该是 2 * (20x29) 即 40x58
猜你喜欢
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2015-11-28
相关资源
最近更新 更多