码迷,mamicode.com
首页 > 其他好文 > 详细

colorWithPatternImage

时间:2014-12-20 18:04:58      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

一般我们设置 一个view的背景  可以通过  在view上放一个imageView 来显示背景图片

 

这里介绍另外一种方法

 

可以直接通过改变view.backgroundColor的值 来达到上面的效果

 

self.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageWithName:@"XXX"]];

 

 这样就能达到上面  imageView的效果     

 

 

 

但是用第二种方法在测试的时候  巨占内存   在ipad上显示一张 1024*768的图片  在模拟器器上查看内存  发现

 

第二中方法  占3.8mb   第一种只占用几十kb

 

 

用colorWithPatternImage设置view背景色太占内存,替代方法

之前的一个iPad项目,由于支持旋转,背景图又不一样,采用在旋转时使用下面代码设置背景色:

    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_landscape.jpg"]];
结果程序一启动就占很大内存,在第一代iPad上转几次就出现内存警告,退出。

今天打算优化一下,发现使用上面的代码占了6MB多内存!一旋转又多了6MB。。。
感觉是这个函数的问题,开始打算用UIImageView代替,可是旋转时,UIImageView的大小变动,会漏出底部的背景色。
最后google搜索,得到两种解决办法:
1.self.view = imageView;(如果支持触摸要加上imageView.userInteractionEnabled = YES;)
2. UImage *image = [UIImage imageNamed:@"name.png"];
     self.view.layer.contents = (id) image.CGImage;
我采用了第二个办法,哇,省了十多MB内存。


ps,由于我这里每次旋转都要设置,所以采用了imageNamed方法,如果仅调用一次,可以使用imageWithContentsOfFile

 

 

colorWithPatternImage

标签:

原文地址:http://www.cnblogs.com/chengfang/p/4175586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!