使用图像作为UIViewController的背景并支持多种屏幕尺寸

时间:2016-09-21 11:09:46

标签: ios uiviewcontroller uiimageview uiimage

在某些视图控制器上,我使用图像作为整个屏幕的背景。我想知道什么是最好的做法,因为我想支持所有现有的iPhone(5-7)。通常对于图像我会得到@ 2x和@ 3x图像,但这里的情况有点不同?

我是否向应用添加了4张照片,然后询问系统我正在运行哪台设备并加载相应的照片?这看起来有点笨重,不太优雅。

2 个答案:

答案 0 :(得分:1)

你真的没有那么多选择。

您可以为不同的设备纵横比捆绑不同的图像,在运行时检查设备纵横比,并加载正确的图像。这种实现是有缺陷的,因为它没有考虑到未来的设备纵横比。您可以使用Web服务返回给定宽高比的正确图像,从而将该工作从客户端中删除。

您还可以创建一个在所有设备尺寸上看起来都不错的单个图片,并将图片加载到UIImageView并设置其contentMode UIViewContentMode.scaleAspectFill以将整个图片填充到视图中#39;框架,裁剪顶部,底部或侧面的一部分。

答案 1 :(得分:1)

我已经通过使用' xcassets'在我的项目中解决了这个问题。该系统基本上处理了哪个设备尺寸'对你的问题。另外,使用不同的contentMode属性(即' aspectFit',' aspectFill',' scaleToFill')。

我要注意的另一件事是' autoResizingMask'属性。在大多数情况下,如果我的尺寸没有按照我的想法进行,我会检查是否给了autoResizingMask一个值为No'。

我希望这有帮助!