用colorWithPatternImage設置view背景色太占內存,替代方法


用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM