iOS:为所有屏幕显示质量相同的图像

时间:2016-10-31 14:41:02

标签: ios iphone swift storyboard constraints

我在故事板中的视图包含一个imageView,其约束为top = 0,height = 55,width = 230且水平居中。使用"视图作为"在Xcode的最后一个版本中,我意识到所有屏幕的图像显示和质量都不一样。在iPhone 4s中质量很好但图像同样大。否则,在iPhone 6s plus屏幕中,我看到图像尺寸对于屏幕有利,但质量不是很好。

如何在所有屏幕中以相同的方式显示图像?任何人都可以给我正确的约束来解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

根据设备的屏幕,您应该定义图像的各种表示。

来自Apple Developer门户网站:

  

iOS使用坐标系统在屏幕上放置内容。这个   坐标系基于点的测量,映射到   显示屏中的像素。

如果您定义了所有三种图像分辨率(normal / @1x@2x@3x),那么您应该很高兴。

重要的是,normal@1x应具有以下参数:height: 55, width: 230

@2x应该是@1x的两倍:height: 110, width:460

@3x的大小应为@1x的三倍:height: 165, width:690

让我们假设你的图像被称为my_image,它是一个png。

  • @1x应该被称为:my_image.png
  • @2x应该被称为:my_image@2x.png
  • @3x应该被称为:my_image@3x.png

将所有这些图片添加到Assets.xcassets。点击Assets.xcassets。打开后,您应该会在左侧看到+符号。

enter image description here

点击+符号,为您的图像命名:

enter image description here

将它们插入这些插槽中:

enter image description here

现在,当您尝试使用此图像时,您只需在Swift中说:

let image = UIImage(named: "my_image")