添加 iOS @1x、@2x、@3x PER 设备,如何?

Adding iOS @1x, @2x, @3x PER device, how to?

我最近问了一个关于为什么我们使用上面列出的 3 种不同图像类型的问题,并得到了 good/detailed 回复。这也让我质疑其他事情......

假设我在 XCode(使用 SWIFT)工作,并且在 iPhone 上具有三种图像大小 @1x、@2x、@3x 用于特定的 say UIImage。现在,我希望它在 iPad 上看起来不错,所以我添加了一些缩放比例。但是,这将改变 iPad 所需的 1x、2x、3x 图像的大小,因此我需要再制作 3 张图像以补偿新尺寸。现在 XCode 如何区分两者?我需要检查我使用的屏幕尺寸然后选择图像吗?

我读到资产可以帮助我,但这只涉及 iPhone 与 iPad,如果我将图像缩放到 iPhone 4、5、6 和 iPad。这是很多不同尺寸和@x 图像,我读到 Apple 不喜欢设备检查,所以我不确定那会怎样。

我希望这是有道理的。我为每台设备获得 @1x、2x、3x,但如果我的应用程序是为通用设备使用而设计的,那么我如何在代码中为适当的设备管理所有这些不同的大小?

你真的应该使用图像资产目录。这几乎太容易了。这是 Apple 给出的定义,因此您知道这不是传闻:

Image sets: Used for most types of images, an image set contains all the versions, or representations, of an image that are necessary to support various devices and scale factors.

然后继续下去:

Each set in an asset catalog has a name. You can use that name to programmatically load any individual image contained in the set. To load an image, call the platform specific class method, passing in the name of the set that contains the image. The OS will load the image from the set that is most appropriate for the current scale factor

所以你真的没什么可做的。我不知道你在哪里听到相反的声音

See Documentation here

您需要检查最大图像的大小,如果您使用 iPad 确定 UIImageView 框架的大小。例如,如果它是 400*400pts,那么您的图像将是 1200*1200。只需使用一个图像。我认为您不需要包括@2x 和@1x。 1200*1200 覆盖了您的基础以获得最大可能的图像,并且缩小后仍会留下大量像素以用于其他设备上的完整 @3x 分辨率等等。反正我是这么理解的。我自己也想知道这一点,只发现@1x @2x @3x 对我没有随着屏幕尺寸增加而放大的东西有用,比如一些按钮。