UIView顯示圖片高級技巧

一、加一個UIImageview在UIView上(還可以)

UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
imageView.image = [UIImage imageNamed:@"home"];
[self.view addSubview:imageView];

這種方式,原始圖片大小不夠(小于view的大?。?,會拉伸圖片,讓圖片失真,view釋放后也不會有什么內存保留。

二、通過圖片來生成UIColor來設置UIView的背景色。注意是根據圖片來生成color(不推薦)

1 . imageName方式:
如果圖片較小,并且頻繁使用的圖片,使用imageName:來加載圖片(按鈕圖片/主頁圖片/占位圖)

self.view.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"home"]]; 

2 . contentOfFile方式:
如果圖片較大,并且使用次數較少,使用 imageWithContentOfFile:來加載(相冊/版本新特性)

NSString *path = [[NSBundle mainBundle]pathForResource:@"name" ofType:@"png"];  
    self.view.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:path]]; 

以上兩種方式都會在生成color的時候消耗大量的內存(原始圖片的N倍,這個N可能會達到幾千的程度,而且如果原始圖片大小不夠,就會按照原始大小一個一個U畫過去,是不會自動拉伸的。1和2的區(qū)別:1中的color不會隨著View的釋放而釋放,而是一直存在于內存中。(再次根據這個圖片生成Color的時候,不會再次去申請內存)。而2中的color會隨著View的釋放而釋放。

三、quarCore方式(推薦)

UIImage *image = [UIImage imageNamed:@"3549"];
//推薦這樣創(chuàng)建image對象:UIImage *image = [UIImage imageWithContentsOfFile:path];
self.view.layer.contents = (id)image.CGImage;
//背景透明加上這一句
self.view.layer.backgroundColor = [UIColor clearColor].CGColor;

在顯示簡單的單張圖片時,利用 UIView.layer.contents 就足夠了,沒必要使用 UIImageView 帶來額外的資源消耗。

如果對性能優(yōu)化感興趣的小伙伴,可以移步這里http://blog.csdn.net/biyuhuaping/article/details/78606226

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,364評論 4 61
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,270評論 5 13
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,694評論 6 30
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評論 25 709
  • 618來啦,買買買! 雙十一來啦,買買買! 雙十二來啦,買買買! 沒用的東西占了太多的地兒了,斷舍離! 在不斷的買...
    我是婷玉呀閱讀 180評論 0 1

友情鏈接更多精彩內容