UIColor initWithPatternImage方法弊端

转自:http://jordy.easymorse.com/?p=849#more-849,没有实验进行验证,我猜可能跟“[UIImage imageNamed:@"yourBackground.png]”这句话有关。


UIView视图只有backgroundColor方法,如果想要为UIView添加一张背景图,常用的方式有两种:

第一种,  是在UIView上加载一UIImageView(在UIImageView添加背景图);

第二种,  是调用UIColor initWithPatternImage方法,具体做法:

UIColor *imageColor = [UIColor initWithPatternImage:[UIImage imageNamed:@"yourBackground.png]];

[uiview setBackgroundColor:imageColor];

是的,这两种方式的确都可以为UIView显示出添加的背景图片,但是如果你要是细心的查看的话,这两种加载方式占用的内存是有很大差别的(建议选择一张大的背景图,这样查看内存会更明显),我自己的程序查看,第一种加载方式比第二种加载方式内存少大约5M

这是使用initWithPatternImage方式加载的弊端一,另外,当释放这个UIView时,如果是ios5以前的版本,会发现initWithPatternImage方式多分配的内存并未随着UIView的释放而释放,更严重的是当我们反复创建这个UIView时,内存是会持续的增长(增长的大小就是initWithPatternImage多分配出来的内存)。

由此,建议大家在给UIView添加新图片时,还是创建UIImageView视图这种方式比较好。




你可能感兴趣的:(UIColor initWithPatternImage方法弊端)