避免在不同设备上使用UIImaveView

时间:2018-02-20 14:20:59

标签: ios swift responsive-design uiimageview uiimage

我需要在iOS项目的故事板中设置背景图片,问题是我不希望图像在不同的屏幕上拉伸,例如,如果我使用iPad,我会看到拉伸的图像,对页面中其他组件的表示不太满意。

有没有办法使用一组图像,这些图像将在用户正在使用的设备上加载,或者简单地说,有没有办法为所有设备设置单个图像并让她正确地适合视图

我已经尝试使用宽高比例来适应或填充方面,但这不是我想要实现的。

//编辑1(添加澄清示例)

以图片(存储在xcassets中)为例,该图片已从photoshop导出为png。 图像的大小就像iphone X(高度812,我认为宽度为373)。 我想要实现的是,如果我使用iPad或iPhone 5这个图像(这是一个全屏幕背景),图像必须像iPhone X一样显示。 我认为不可能为所有设备使用单个图像,但可能存在一种技巧,用于在所使用的设备上加载不同的图像。

4 个答案:

答案 0 :(得分:0)

使用资产目录(具有准确的资源@ 2x / @ 3x /或某些xcode支持的矢量格式PDF)

答案 1 :(得分:0)

在Xcode 8及更高版本中,您可以将图像添加为pdf而不是png,创建新的图像集,然后在属性检查器中将标尺设置为Single Scale选项。 enter image description here

答案 2 :(得分:0)

您需要了解不同屏幕分辨率的屏幕分辨率和图像/ png文件比例。 Here是关于您的查询的有用链接。另外,我建议您阅读有关human interface guideline的Apple官方文档。

如果它是静态图像,您不关心屏幕分辨率是固定宽度高度,您可以避免使用1x,2x和3x分辨率,除此之外,您几乎每个都需要所有三种分辨率图像是应用程序图标,启动屏幕或自定义图像。

注意:对于自定义图像,您可以为图像或按容器/需要修改1x,2x和3x图像分辨率或缩放属性。

答案 3 :(得分:0)

为iPhone和iPad创建两张分辨率最高的图像 - 1242×2208(适用于iPhone)和2048 x 2048(适用于iPad)

在您的资源中,添加背景图像集,选择该图像并配置图像中的属性检查器。

  • 选择缩放为单一刻度
  • 检查设备
  • 下的iPhone和iPad

enter image description here

在故事板中,将UIImageView添加到控制器,将其模式设置为“Aspect Fill”并设置所有插座