要设置图片背景色用这个方法:
self.view.backgroundColor = [UIColor colorWithPatternImage:lastImage];
但是这样的话图片是平铺到指定区域的,并没有进行拉伸。
为了实现平铺这里提供两种方法:
1.从layer层入手,改变contents:
self.view.layer.contents = (id)[UIImage imageNamed:@"1.png"].CGImage;
2.重绘图片
UIImage *image = [UIImage imageNamed:@"1.png"]; UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.f); [image drawInRect:self.view.bounds]; UIImage *lastImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); self.view.backgroundColor = [UIColor colorWithPatternImage:lastImage];
看上去应该很眼熟吧,只是平时很少用这种方法来重绘控件。两者的区别无非在于对内存的损耗上面,如果简单使用的话影响不大,要是很多地方用的话就需要深入研究对内存的损耗了。