swift - 调整 UIImage 大小以适合设备宽度

标签 swift uiimage

我需要在我的 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/

相关文章:

ios - 在 swift 3 中,每次在我的提要中点赞帖子时,如何执行动画?

swift - NSStatusBar 中的 NSStatusItem,操作选择器方法没有响应

ios - 修改属性会导致调用方法吗?

ios - 使用按钮进行水平 ScrollView /页面控制

ios - 在 swift IOS 中停止改变宽度的标签中的文本

ios - UIImage 在 vi​​ewController swift 上出现晚了 2-3 秒

ios - 如果图像被另一个应用程序(如照片、safari 等)复制,我如何从 UIPasteboard 获取图像的原始数据。

ios - 下载的图片需要很长时间才能显示在 UIImageView 上

swift - 以编程方式更改 UIImage 位置

iphone - 来自 NSString 中保存的字节的 UIImage