UIImageView 的三種使用方式

2021-06-18 17:58:03 字數 1142 閱讀 9065

//初始化

uiimageview  *imageview

=[[uiimageview alloc] initwithframe:cgrectmake(

100,

200,

120,

120)];

//需要設定 uiimage

第一種:[imageview setimage:[uiimage imagenamed:@"1.jpeg"]];

//第二種:

nsstring *filepath=[[nsbundle mainbundle] pathforresource:

@"1" oftype:

@"jpeg"

];uiimage

*images=[

uiimage

imagewithcontentsoffile

:filepath];

//[imageview setimage:images];

//第三種:

nsdata *data=[nsdata datawithcontentsoffile:filepath];

uiimage *image2=[uiimage imagewithdata:data];

[imageview

setimage:image2];

其中第一 二種屬於一種,共兩種:

1)用imagenamed的方式載入時,系統會把影象cache到記憶體。如果影象比較大,或者影象比較多,用這種方式會消耗很大的記憶體,而且釋放影象的記憶體是一件相對來說比較麻煩的事情。例如:如果利用imagenamed的方式載入影象到乙個動態陣列nsmutablearray,然後將將陣列賦予乙個uiview的物件的animationimages進行逐幀動畫,那麼這將會很有可能造成記憶體洩露。並且釋放影象所佔據的記憶體也不會那麼簡單。但是利用imagenamed載入影象也有自己的優勢。對於同乙個影象系統只會把它cache到記憶體一次,這對於影象的重複利用是非常有優勢的。例如:你需要在乙個tableview裡重複載入同樣乙個圖示,那麼用imagenamed載入影象,系統會把那個圖示cache到記憶體,在table裡每次利用那個影象的時候,只會把指標指向同一塊記憶體。這種情況使用imagenamed載入影象就會變得非常有效。

無論用哪種方式載入影象,影象使用結束後,一定要記得顯示釋放記憶體。 

執行緒的第三種建立方式 Callable的使用

public class mythread implements callable public class callabledemo aaa 11111111 1024futuretask.get 建議放在 的最後面,否則main執行緒會等待子執行緒執行完才會執行。public class cal...

Vmware WorkStation的三種聯網方式

眾所周知,vmware是windows系統下流行的虛擬機器軟體,可以使使用者在一台真實的主機上虛擬出多個不同系統的虛擬機器。虛擬機器使用者也希望虛擬機器能像真實的主機一樣連線網路。下面簡要介紹vmware的3種聯網方法。僅主機模式 only host 這種方式下的虛擬機器不能訪問區域網內的其他主機,...

if 的三種格式

if 語句 條件判斷 以及它的三種格式 public class main false 為假 所以不會執行裡面的語句if false 判斷 int a 1 int b 2 如果 a b 返回true 否則 返回 false a 1 b 2 aif a b aif a if 語句的三種格式 1.if ...