tableView的重用機制

2021-07-08 18:15:44 字數 1144 閱讀 6995

tableview的重用機制?

檢視uitableview標頭檔案,會找到nsmutablearray*  visiablecells,和nsmutabledictnery* reusabletablecells兩個結構。visiablecells內儲存當前顯示的cells,reusabletablecells儲存可重用的cells。

tableview顯示之初,reusabletablecells為空,那麼tableview dequeuereusablecellwithidentifier:cellidentifier返回nil。開始的cell都是通過[[uitableviewcell alloc] initwithstyle:uitableviewcellstyledefault reuseidentifier:cellidentifier]來建立,而且cellforrowatindexpath只是呼叫最大顯示cell數的次數。

比如:有100條資料,iphone一屏最多顯示10個cell。程式最開始顯示tableview的情況是:

1. 用[[uitableviewcell alloc] initwithstyle:uitableviewcellstyledefault reuseidentifier: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再次被呼叫的時候,tableview dequeuereusablecellwithidentifier:cellidentifier,返回cell1。cell1加入到visiablecells,cell1移出reusabletablecells;cell2移出visiablecells,cell2加入到reusabletablecells。之後再需要顯示的cell就可以正常重用了。

tableVIew重用機制

檢視 uitableview 標頭檔案,會找到 nsmutablearray visiablecells 和nsmutabledictnery reusabletablecells 兩個結構。visiablecells 內儲存當前顯示的 cells reusabletablecells 儲存可重用的...

UITableView的重用機制

uitableview的重用機制是蘋果公司為了大量的資料顯示而採用的一種節省記憶體的機制,在大量資料的前提下,也需要有充足的顯示這些資料的行 也就是uitableviewcell 那麼是否需要來建立成百上千的資料行來裝這些資料,然後顯示出來呢。這將會消耗大量的記憶體,重用機制就是來解決這一問題的。重...

cell的重用機制

ios開發ui篇 uitableviewcell的效能問題 一 uitableviewcell的一些介紹 uitableview的每一行都是乙個uitableviewcell,通過datasource的 tableview cellforrowatindexpath 方法來初始化每 行 uitabl...