IOS開發之TableView詳細解釋

2021-06-17 18:06:40 字數 3418 閱讀 5666

-、建立 uitableview

datatable = [[uitableview alloc] initwithframe:cgrectmake(0, 0, 320, 420)];

[datatable setdelegate:self];

[datatable setdatasource:self];

[self.view addsubview:datatable];

[datatable release];

二、uitableview各method說明

//section總數

- (nsarray *)sectionindextitlesfortableview:(uitableview *)tableview

// section titles

//每個section顯示的標題

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

//指定有多少個分割槽(section),預設為1

- (nsinteger)numberofsectionsintableview:(uitableview *)tableview

//指定每個分割槽中有多少行,預設為1

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

//繪製cell

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

cell.imageview.image=image;//未選cell時的

cell.imageview.highlightedimage=highlightimage;//選中cell後的

cell.text=//.....

return cell;

}//行縮排

-(nsinteger)tableview:(uitableview *)tableview indentationlevelforrowatindexpath:(nsindexpath *)indexpath

//改變行的高度

- (cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath

//定位

[topicstable setcontentoffset:cgpointmake(0, promisenum * 44 + chapter * 20)];

//返回當前所選cell

nsindexpath *ip = [nsindexpath indexpathforrow:row insection:section];

[topicstable selectrowatindexpath:ip animated:yes scrollposition:uitableviewscrollpositionnone];

[tableview setseparatorstyle:uitableviewcellselectionstylenone];

//選中cell響應事件

- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath

//判斷選中的行(阻止選中第一行)

-(nsindexpath *)tableview:(uitableview *)tableview willselectrowatindexpath:(nsindexpath *)indexpath

//划動cell是否出現del按鈕

- (bool)tableview:(uitableview *)tableview caneditrowatindexpath:(nsindexpath *)indexpath

//編輯狀態

- (void)tableview:(uitableview *)tableview commiteditingstyle:(uitableviewcelleditingstyle)editingstyle

forrowatindexpath:(nsindexpath *)indexpath

//返回section標題內容

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

//自定義划動時del按鈕內容

- (nsstring *)tableview:(uitableview *)tableview

titlefordeleteconfirmationbuttonforrowatindexpath:(nsindexpath *)indexpath

//跳到指的row or section

[tableview scrolltorowatindexpath:[nsindexpath indexpathforrow:0 insection:0] atscrollposition:uitableviewscrollpositionbottom animated:no];

三、在uitableviewcell上建立uilable多行顯示

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

uilabel *datalabel = (uilabel *)[cell.contentview viewwithtag:100];

[datalabel setfont:[uifont boldsystemfontofsize:18]];

datalabel.text = [data.dataarray objectatindex:indexpath.row];

cell.accessorytype = uitableviewcellaccessorydisclosureindicator;

return cell;

}//選中cell時的顏色

typedef enum uitableviewcellselectionstyle 

//cell右邊按鈕格式

typedef enum uitableviewcellaccessorytype

//是否加換行線

typedef enum uitableviewcellseparatorstyle//改變換行線顏色

tableview.separatorcolor = [uicolor bluecolor];

正在學習過程中,錯誤之處請指正,歡迎交流,共同學習;

IOS開發之tableview單選

場景 乙個彈出層,包含乙個tableview,每一行為乙個選擇條件,且只能選擇乙個。選中後文體有顏色變化,後面還會有對勾。選擇另乙個後,前乙個恢復成普通狀態。示例 void tableview uitableview tableview didselectrowatindexpath nsindex...

iOS開發 TableView詳細解釋

建立 uitableview datatable uitableview alloc initwithframe cgrectmake 0,0,320,420 datatable setdelegate self datatable setdatasource self self.view adds...

iOS開發之優化tableView卡頓現象

1.復用單元格 2.使用不透明的試圖,單元格中盡量少使用動畫 3.使用非同步載入同時設定載入的併發數 4.滑動時不載入,滑動結束開始載入 5.文字可以直接drawinrect繪製 6.非必要條件下,減少重新整理的cell 7.如果cell是動態行高,可直接計算高度後快取 首先重用cell 其次可以用...