我需要在我的 swift 3 应用程序中添加一张图像作为背景。我用这个设置背景:
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "bg_sunrise")!)
有没有办法确保图像适合当前设备宽度并且不会放大?
最佳答案
这取决于你真正想要什么。
如果您需要“宽高比”,则需要将图像放入像 emresancaktar 提供的 UIImageView 中。这个问题 - 通过您使用 View 的背景颜色,您建议这样做 - 是您希望将东西放在上面所述 UIImageView 上。这使事情变得复杂。
如果您只需要缩放到 View 大小而不考虑“宽高比”,您可以使用它的图层:
view.layer.contents = UIImage(named: "bg_sunrise")?.cgImage
最后,如果您喜欢使用 View 的图层但确实需要“宽高比”,则需要使用 CGImage 上下文,可能在进行一些计算后使用 UIImage.drawInRect() 方法。快速搜索“CALayer 绘制图像纵横比”得到了这个 gist 。它有点旧,但有一个 Swift 版本。您可以拼凑出返回 CALayer 而不是 UIImage 所需的内容。
关于swift - 调整 UIImage 大小以适合设备宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40567713/