当前位置: 代码迷 >> 综合 >> swift 关于背景图片的拉伸与平铺
  详细解决方案

swift 关于背景图片的拉伸与平铺

热度:40   发布时间:2023-11-02 07:47:28.0

在ios开发中很多的地方都会需要我们添加背景图片,下面是添加背景图片的方法:

一般的情况下我们往往是通过backgroundImage属性来设置背景图片,但是在有的View中没有backgroundImage这个属性,这时候我们可以通过backgroundColor这个属性来添加背景图,具体方法如下:

例如:

reusableViews.backgroundColor = UIColor(patternImage: UIImage(named:"bg")!)
但是这种方法如果图片大小不够则会根据背景页面的大小进行平铺,无法将小图片进行拉伸。

使用以下的方法可以对图片进行拉伸:

方法一: 在layer层改变contents

例如:

reusableViews.layer.contents = UIImage(named: "bg")?.CGImage

方法二:对图片进行重绘  

例如:

let image = UIImage(named: "bg")
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 0.1);
image?.drawInRect(reusableViews.bounds)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();
reusableViews.backgroundColor = UIColor(patternImage: newImage)
对于这种方法来说如果只是简单的小部分使用还好,对内存没有什么影响,但如果要大量的去使用的话就需要考虑到对内存的消耗了。