檢視
uitableview
標頭檔案,會找到
nsmutablearray* visiablecells
,和nsmutabledictnery* reusabletablecells
兩個結構。
visiablecells
內儲存當前顯示的
cells
,reusabletablecells
儲存可重用的
cells。
tableview
顯示之初,
reusabletablecells
為空,那麼
tableviewdequeuereusablecellwithidentifier:cellidentifier
返回 nil
。開始的
cell
都是通過
[[uitableviewcell alloc] initwithstyle:uitableviewcellstyledefaultreuseidentifier:cellidentifier]
來建立,而且
cellforrowatindexpath
只是呼叫最大顯示
cell
數的次數。
比如:有
100
條資料,
iphone
一屏最多顯示
10 個
cell
。程式最開始顯示
tableview
的情況是:
1. 用[[uitableviewcell alloc] initwithstyle:uitableviewcellstyledefaultreuseidentifier:cellidentifier]
建立 10
次 cell
,並給
cell
指定同樣的重用標識
(當然,可以為不同顯示型別的
cell
指定不同的標識
)。並且
10 個
cell
全部都加入到
visiablecells
陣列,reusabletablecells
為空。
2. 向下拖動
tableview
,當 cell1
完全移出螢幕,並且
cell11(
它也是
alloc
出來的,原因同上
)完全顯示出來的時候。
cell11
加入到
visiablecells
,cell1
移出 visiablecells
,cell1
加入到
reusabletablecells。
3. 接著向下拖動
tableview
,因為
reusabletablecells
中已經有值,所以,當需要顯示新的
cell
,cellforrowatindexpath
再次被呼叫的時候,
tableviewdequeuereusablecellwithidentifier:cellidentifier
,返回
cell1
。cell1
加入到
visiablecells
,cell1
移出 reusabletablecells
;cell2
移出 visiablecells
,cell2
加入到reusabletablecells
。之後再需要顯示的
cell
就可以正常重用了。
tableView的重用機制
tableview的重用機制?檢視uitableview標頭檔案,會找到nsmutablearray visiablecells,和nsmutabledictnery reusabletablecells兩個結構。visiablecells內儲存當前顯示的cells,reusabletablecel...
iOS UItableview重用機制
重用機制的定義就是乙個節省記憶體的機制,當我們的tableview有100或更多資料是如果沒有重用機制那樣會把記憶體很快佔滿 尤其使大多數我們在cell上面放上,是乙個很佔記憶體的東西 所以我們需要重用機制來解決,重用機制就是在我們螢幕的可顯示範圍內建立cell 其餘的復用這些cell,以我個人的理...
cell重用機制
i ios 裝置的記憶體有限,如果用 uitableview 顯示成千上萬條資料,就需要成千上萬個 uitableviewcell 物件的話,那將會耗盡 ios裝置的記憶體。要解決該問題,需要重用 uitableviewcell物件 n重用原理 當滾動列表時,部分 uitableviewcell 會...