iOS中tableView的cell的重用機制

2021-07-04 04:59:06 字數 1162 閱讀 9653

因為最近鋪介面是用到了tableview,, 所以我就研究了一下tableview的重用機制.

tableview的重用機制. 剛接觸tableview時我就研究了一下它的重用機制, 但是時間長了就有點忘記了, 最近老師布置了有關tableview的作業使我又想起了它, 所以今天又複習了一下, 有不足的地方請大家見諒和指點. 所謂的重用池, 我認為就是裝有已建立好的cell, 當用到時可以從重用池中直接呼叫.

我們可以模擬乙個場景: 因為uitableviewcell是繼承於uiview的, 所以我們可以在cell上新增許多的子檢視, 當我們用成百上千行的cell來呈現資料時, 那得浪費多大的記憶體啊! 所以重用池就解決了這一問題.

我查詢了一些資料, 有人說在tableview的sdk中會找到nsmutablearray* visiablecells,和nsmutabledictnery* reusabletablecells兩個結構, 但是我只查到了visiablecells, 而且型別是nsarray, 所以我想現在用的tableview已經經過了改進, 但是它的大致原理是不變的, 手機螢幕上首次顯示的cell是我們通過方法:- (instancetype)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier建立的, 當我們向上滑動瀏覽資料是, 第乙個cell將會慢慢的消失, 下面的cell就會慢慢的呈現出來, 所以上面第乙個cell就會進入重用池中, 而從下面進入螢幕視野的cell就會從重用池中取出, 這樣反覆利用, 就不需要我們建立成百上千的cell來浪費大量的記憶體, 請看下面的**

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath

cell.textlabel

.text = [self

.arr objectatindex:indexpath.row];

return cell;

}

當重用池中沒有cell是, 就會建立cell, 當重用池中有cell時就會被取出來,並且重新進行賦值. 就這樣反覆利用. 這就是我理解的重用池.(附帶一句, 我感覺重用池就是乙個佇列, 大家可以好好體會一下)

iOS 中tableview的使用

section總數 nsarray sectionindextitlesfortab leview uitableview tableview section titles 每個section顯示的標題 nsstring tableview uitableview tableview titlefo...

IOS中TableView的用法

一 uitableview 1.資料展示的條件 1 uitableview的所有資料都是由資料來源 datasource 提供的,所以要想在uitableview展示資料,必須設定uitableview的datasource資料來源物件 2 要想當uitableview的datasource物件,必...

ios中tableview的移動新增刪除

mjviewcontroller.m uitableview 編輯模式 created by mj on 13 4 11.import mjviewcontroller.h inte ce mjviewcontroller property nonatomic,retain nsmutablearr...