【问题标题】:How to identify the particular iPhone device is picking which one 1x or 2x or 3x in ios如何识别特定的 iPhone 设备在 ios 中选择哪一个 1x 或 2x 或 3x
【发布时间】:2018-06-06 10:11:41
【问题描述】:

在 imageView 上设置图像。在资产中,我有 1x 2x 和 3x 图像。我如何知道特定设备正在选择 1x 或 2x 或 3x 。有任何方法可以使用 swift 在 ios 中以编程方式检查它。

UIScreen.main.scale 获取特定设备的方法是根据其比例选择 1x 或 2x 或 3x。但说真的,不是那样的。 iPhone 6s+ plus 没有选择 3x。总是得到模糊的图像。

【问题讨论】:

  • 有很多解决方案,请检查
  • 你如何确定 6+ 没有选择 3x?

标签: ios swift


【解决方案1】:

资产图像是根据设备屏幕的比例因子挑选的。 要获取屏幕的比​​例,您可以使用this

UIScreen.main.scale // returns CGFloat

【讨论】:

  • 根据 UIScreen.main.scale,iphone6s+ scale 是 3.0,所以 iphone6s+ 需要选择 3x 的图片。但是我在 imageView 上得到了模糊的图像。我的 imageView 框架是 90*90。我有一个图像 1x Size - 30*30 , 2x Size - 60*60 3x Size - 90*90 但 imageView 没有选择 3x。
  • 如果您的 imageView 框架为 90 x 90,那么您的资产图像应为 90 x 90(1x)、180 x 180(2x)和 270 x 270(3x)。
  • @RajeshSharma:一般来说,将图像视图的框架设置为类似于 1x 图像。如果你使用自动布局,你不需要给 UIImageView 提供宽度/高度,它会根据内容调整自己的大小。您可以在界面生成器中看到这一点,您可以在其中提供图像名称,它会根据图像大小调整 UIImageview 的大小。
【解决方案2】:

您无需手动选择图片,系统会根据设备使用适当比例的图片。

但是,从 cmets 看来,您似乎误解了逻辑分辨率的工作原理。您需要大小为physical resolution * scale 的图像。所以对于大小为90x90imageView,在你的情况下,1x 是90x90,2x 是180x180,3x 是270x270

【讨论】:

  • 请不要只在 Photoshop 中放大 90x90 的图像。您需要从一个清晰的 270x270 图像开始,然后按比例缩小以创建其他图像。
【解决方案3】:

以下answer 用于不同的问题解释了图像选择机制。
它还有一个表格,将设备类型连接到所选图像(1x/2x/3x)

【讨论】:

    猜你喜欢
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2018-11-11
    • 1970-01-01
    • 2015-08-14
    • 2023-04-09
    • 2015-11-28
    相关资源
    最近更新 更多