转载自: http://www.cocoachina.com/bbs/read.php?tid=96619
用colorWithPatternImage设置view背景色太占内存,替代方法
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 。