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

时间:2016-11-12 21:13:03

标签: swift uiimage

我需要在我的swift 3应用程序中将图像作为背景。我用这个设置背景:

self.view.backgroundColor = UIColor(patternImage: UIImage(named: "bg_sunrise")!)

有没有办法确保图像符合当前设备宽度并且没有放大?

2 个答案:

答案 0 :(得分:0)

这个小片段将解决您的问题。有一个很好的编码。

var imageView : UIImageView
imageView = UIImageView(frame:CGRectMake(0, 0, 100, 70))
imageView.contentMode = .ScaleAspectFit

答案 1 :(得分:0)

这取决于你真正想要的东西。

  • 如果您需要“纵横比较”,则需要将图像拖放到提供的emresancaktar之类的UIImageView中。这个问题 - 以及你使用视图的backgroundColor你建议这个 - 就是你希望将放在所述UIImageView的顶部上。这使事情变得复杂。

  • 如果您只需缩放到视图大小而不考虑“纵横比”,则可以使用它的图层:

    view.layer.contents = UIImage(named: "bg_sunrise")?.cgImage
    
  • 最后,如果您喜欢使用视图的图层但需要“方面适合”,则需要使用CGImage上下文,可能在进行一些计算后使用UIImage.drawInRect()方法。快速搜索“CALayer draw image aspect fit”得到了这个gist。它有点旧,但那里有一个Swift版本。您可以拼凑返回CALayer而不是UIImage所需的内容。

相关问题