UIImage 方向问题

Posted

技术标签:

【中文标题】UIImage 方向问题【英文标题】:UIImage Orientation Issue 【发布时间】:2018-03-29 15:07:18 【问题描述】:

为什么背景图像会像在图像 2 上那样呈现?纵向模式看起来不错,但是当我将手机更改为横向模式时,背景图像似乎多次渲染同一图像以适应屏幕的整个宽度。为什么会发生这种情况,我该如何解决?

编辑 1:

这是我用来演示此问题的代码:

let backgroundImage = UIImage(named: "Background")
view.backgroundColor = UIColor(patternImage: backgroundImage!)

图片1:

图 2:

【问题讨论】:

来自文档:您可以使用图案颜色来设置填充或描边颜色,就像使用纯色一样。在绘图期间,图案颜色的图像会根据需要平铺以覆盖给定区域。您可能想要一个简单的图像视图,而不是应该相应地拉伸... 【参考方案1】:

我按照Alladinian 的建议创建了一个 UIImageView,这有帮助,但它没有通过 x.contentMode 属性正确缩放(我还没有调查原因)。您必须在 UIImageView 声明中使用 autoresizingMask 属性,以使背景图像适合所有内容模式。

这将使它工作:

let backgroundImage = UIImage(named: "Background")
let backgroundImageView = UIImageView(image: backgroundImage)
backgroundImageView.autoresizingMask = [.flexibleHeight, .flexibleWidth]

view.addSubview(backgroundImageView)

【讨论】:

以上是关于UIImage 方向问题的主要内容,如果未能解决你的问题,请参考以下文章

UIImage 在将其转换为 CIImage,然后转换为 CGImage 并返回 UIImage 时失去其方向

iOS - 根据坐标更改 UIImage 的方向

裁剪的 UIImage 方向/拉伸

UIImagePickerController 中的 UIImage 方向问题

设备方向更改时更改 UIImage

UIImage 方向 Swift