UIImage 加載圖片及SDWebimage的簡單使用介紹

用UIImage加載圖像的方法很多,最常用的是下面兩種:

    1、用imageNamed函數

[UIImage imageNamed:ImageName];

    2、用NSData的方式加載,例如:

   1. NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
   2. NSData *image = [NSData dataWithContentsOfFile:filePath];
   3. [UIImage imageWithData:image];

    由於第一種方式要寫的代碼比較少,可能比較多人利用imageNamed的方式加載圖像。其實這兩種加載方式都有各自的特點。

    1)用imageNamed的方式加載時,系統會把圖像Cache到內存。如果圖像比較大,或者圖像比較多,用這種方式會消耗很大的內存,而且釋放圖像的 內存是一件相對來說比較麻煩的事情。例如:如果利用imageNamed的方式加載圖像到一個動態數組NSMutableArray,然後將將數組賦予一 個UIView的對象的animationImages進行逐幀動畫,那麼這將會很有可能造成內存泄露。並且釋放圖像所佔據的內存也不會那麼簡單。但是利 用imageNamed加載圖像也有自己的優勢。對於同一個圖像系統只會把它Cache到內存一次,這對於圖像的重複利用是非常有優勢的。例如:你需要在 一個TableView裏重複加載同樣一個圖標,那麼用imageNamed加載圖像,系統會把那個圖標Cache到內存,在Table裏每次利用那個圖 像的時候,只會把圖片指針指向同一塊內存。這種情況使用imageNamed加載圖像就會變得非常有效。

    2)利用NSData方式加載時,圖像會被系統以數據方式加載到程序。當你不需要重用該圖像,或者你需要將圖像以數據方式存儲到數據庫,又或者你要通過網絡下載一個很大的圖像時,請儘量使用imageWithData的方式加載圖像。

    無論用哪種方式加載圖像,圖像使用結束後,一定要記得顯示釋放內存。

=====================================================================================================

下面介紹使用第三方庫 SDWebimage 加載圖片 ,SDWebimage 用於加載網絡圖片,能自動緩存圖片,下次再次打開程序時會先自己從緩存中找圖片,然後加載圖片,找不到則從URL中取圖片。

下載地址:https://github.com/rs/SDWebImage

導入到項目中 添加framework  imageIO.framework

使用之前,在.m文件中#import UIImageView+WebCache.h文件

[cell.imgv setImageWithURL:[NSURLURLWithString:imageurl] placeholderImage:[UIImageimageNamed:@"default_image"]];

imageurl:網絡圖片的地址

default_image:默認圖片名字

以上是SDWebimage的簡單用法,其實這其強大的功能遠不止這些,如果想了解更多,請參閱:http://blog.163.com/wzi_xiang/blog/static/659829612012111402812726/

或自行百度:SDWebimage  查找相關資料。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章