UITableView學習筆記(一)

2021-06-28 12:35:35 字數 4271 閱讀 7648

是uiviewcontroller

的子類,

uitableviewcontroller

預設扮演了

3種角色

:檢視控制器、

uitableview

的資料來源和**uitableviewcontroller的

view

是個uitablview,

由uitableviewcontroller

負責設定和顯示這個物件。

uitableviewcontroller

物件被建立後,會將這個

uitableview

物件的datasource

和delegate

指向uitableviewcontroller

自己。

- (id)initwithframe:(cgrect)frame style:(uitableviewstyle)style

// 初始化乙個uitableview,並且設定**樣式

- (void)reloaddata   

// 重新訪問資料來源,重新整理介面

- (nsinteger)numberofsections  

// 分割槽的個數

- (nsinteger)numberofrowsinsection:(nsinteger)section

// 第section分割槽的行數

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

// 通過indexpath找到對應的uitableviewcell物件

- (void)setediting:(bool)editing animated:(bool)animated

// 是否要開啟編輯模式

- (void)deselectrowatindexpath:(nsindexpath *)indexpath animated:(bool)animated

// 取消選中某一行,讓被選中行的高亮顏色消失(帶動畫效果)

- (id)dequeuereusablecellwithidentifier:(nsstring *)identifier

// 通過identifier在(快取)池中找到對應的uitableviewcell物件

- (void)deleterowsatindexpaths:(nsarray *)indexpaths withrowanimation:(uitableviewrowanimation)animation

// 移除indexpaths範圍內的所有行

@property(nonatomic,readonly) uitableviewstyle style 

//**樣式

@property(nonatomic,assign) id datasource

// 資料來源

@property(nonatomic,assign) id delegate 

// **

@property(nonatomic,getter=isediting) bool editing 

// 是否為編輯模式

@property(nonatomic) uitableviewcellseparatorstyle separatorstyle

// 設定分隔線的樣式

@property(nonatomic,retain) uicolor *separatorcolor

// 設定分隔線的顏色

@property(nonatomic,retain) uiview *tableheaderview

// 表頭顯示的檢視

@property(nonatomic,retain) uiview *tablefooterview

// 表尾顯示的檢視

@property(nonatomic) bool allowsselection

// 是否允許選中行

@property(nonatomic) bool allowsselectionduringediting

// 是否允許在編輯模式下選中行

@property(nonatomic) bool allowsmultipleselection

// 是否允許選中多行

@property(nonatomic) bool allowsmultipleselectionduringediting

// 是否允許在編輯模式下選中多行

1.資料展示的條件

(1) uitableview

的所有資料都是由資料來源(datasource)提供的,所以要想在uitableview展示資料,必須設定uitableview的datasource資料來源物件

(2)要想當uitableview

的datasource

物件,必須遵守

uitableviewdatasource

協議,實現相應的資料來源方法

(3)當uitableview想要展示資料的時候,就會給資料來源傳送訊息(呼叫資料來源方法),uitableview會根據方法返回值決定展示怎樣的資料

2.資料展示的過程

(1)先呼叫資料來源的

- (nsinteger)numberofsectionsintableview:(uitableview *)tableview

得知一共有多少組

(2)然後呼叫資料來源的

- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

得知第section組一共有多少行

(3)然後呼叫資料來源的

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

得知第indexpath.section組

第indexpath.row 行顯示怎樣的cell(顯示什麼內容)

3.常見資料來源方法

(1) 一共有多少組

- (nsinteger)numberofsectionsintableview:(uitableview *)tableview

(2)第section組一共有多少行

- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section

(3)第

indexpath.section組第

indexpath.row

行顯示怎樣的

cell

(顯示什麼內容)

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

(4)第section組顯示怎樣的頭部標題

- (nsstring *)tableview:(uitableview *)tableview titleforheaderinsection:(nsinteger)section;

(5) 第section組顯示怎樣的尾部標題

- (nsstring *)tableview:(uitableview *)tableview titleforfooterinsection:(nsinteger)section;

4.tableview重新整理資料的方式

(1) 修改模型資料

(2) 重新整理**

* reloaddata --- 整體重新整理(每一行都會重新整理)

* - (void)reloadrowsatindexpaths:(nsarray *)indexpaths withrowanimation:(uitableviewrowanimation)animation   ---區域性重新整理

5.效能優化

(1) 定義乙個迴圈利用標識

static nsstring *id = @"c1";

(2) 從快取池中取出可迴圈利用的cell

uitableviewcell *cell = [tableview dequeuereusablecellwithidentifier:id];

(3) 如果快取池中沒有可迴圈利用的cell

if (cell == nil) 

(4) 覆蓋cell上面的資料

cell.textlabel.text = [nsstring stringwithformat:@"第

%d行資料

", indexpath.row];

IOS學習筆記 UITableView繫結資料例項

首先建立model,新建乙個檔案存放model類 import uikit class testmodel nsobject 在controller中的class外,宣告乙個變數 var list testmodel 為list增加資料 override func viewdidload 將tabl...

iOS開發學習筆記 UITableview

1.工程勾選支援arc 2.利用ib拖乙個uitableview並且連線委託 用uitableview實現簡單的文字和顯示 import inte ce viewcontroller uiviewcontroller property strong,nonatomic iboutlet uitabl...

歸納筆記09 UITableView

uitableview繼承了uiscrollview,它具有uiscrollview的功能,這個uiscrollview中主要封裝了uitableviewcell單元格控制項,因此,uitableview預設可以對單元格進行滾動。預設狀態下,所有的uitableviewcontroller例項被自動...