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

转载自: http://www.cocoachina.com/bbs/read.php?tid=96619

用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




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值