我需要在我的swift 3应用程序中将图像作为背景。我用这个设置背景:
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "bg_sunrise")!)
有没有办法确保图像符合当前设备宽度并且没有放大?
答案 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所需的内容。