添加iOS @ 1x,@ 2x,@ 3x PER设备,怎么样?

时间:2015-09-03 16:47:56

标签: ios swift resolution scaling pixels

我最近问了一个问题,为什么我们使用上面列出的3种不同的图像类型,并获得了良好/详细的响应。它还让我质疑其他事情......

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

我读到资产可以帮助我,但这只涉及iPhone与iPad,如果我在iPhone 4,5,6和iPad上扩展我的图像怎么办?这有很多不同的尺寸和@x图像,我读Apple并不喜欢设备检查,所以我不确定会发生什么。

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

2 个答案:

答案 0 :(得分:3)

你真的应该使用图片资产目录。这让它变得非常简单。以下是Apple给出的定义,因此您知道它不是传闻:

  

图像集:用于大多数类型的图像,图像集包含支持各种设备和比例因子所必需的图像的所有版本或表示。

它还在继续:

  

资产目录中的每个集都有一个名称。您可以使用该名称以编程方式加载集合中包含的任何单个图像。要加载图像,请调用特定于平台的类方法,并传入包含该图像的集的名称。 操作系统将加载最适合当前比例因子的图像

所以你真的没什么可做的。我不知道你听到了相反的地方

See Documentation here

答案 1 :(得分:-3)

如果你使用iPad计算出UIImageView框架的大小,你需要检查最大图像的大小。例如,如果它是400 * 400pts,那么您的图像将是1200 * 1200。只需使用一张图片。我认为你不需要包含@ 2x和@ 1x。 1200 * 1200覆盖了最大可能图像的基础,缩小比例仍将有足够的像素留在其他设备上的完整@ 3x分辨率等等。无论如何,这就是我的理解。我自己也想知道这一点,并且只发现@ 1x @ 2x @ 3x对于我没有按比例放大屏幕尺寸增加的东西很有用,例如某些按钮。