from:@"http://xubenyang.me/54"
给大家一个问题,如何给view添加背景图片?也许在你的脑中一下子会又N多方法,但是这里想介绍的是一种使用“内置”的方法,可以省去大家不少的代码。
UIView有这样一个属性
@property(nonatomic,copy) UIColor *backgroundColor; // default is nil
以想到UIColor,可能大家都只是想到到UIColor只能设置纯色,但是UIColor就有很多神奇的地方!
+ (UIColor *)colorWithPatternImage:(UIImage *)image;
这个方法就可以产生一个基于图片的颜色,更加精确地说是Pattern,这样之后就可以用这个颜色/pattern来填充view背景了。其工作原理就是pattern的工作原理(详情见这里),所以如果是你的图片和view的大小一样的话,那么图片就不会重复绘制成tiled情况。
*但是针对UIScrollView极其Subclass(如UITableView)这样设置背景可能就和你想要的效果不一样了,因为这个方法实际是使用pattern最为paint color,所以在scroll的时候会将pattern重复绘制像是tiled一样。。。Oops…所以如果是对TableView设置背景,最简单的还是在tableview下面add一个含有背景图片的imageview,在将tableview的backgroundcolor设置为clear。
PS:UIColor还有几个很好玩的方法,读者可以自己尝试:
+ (UIColor *)lightTextColor
+ (UIColor *)darkTextColor
+ (UIColor *)groupTableViewBackgroundColor
+ (UIColor *)viewFlipsideBackgroundColor