UITableView 常用屬性及方法

weixin_34124651發表於2017-07-12

//屬性設定
cell取消選中狀態 點選cell不變色

cell.selectionStyle = UITableViewCellSelectionStyleNone;

//設定cell 的箭頭

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

//點選cell不變色

cell.selectionStyle = UITableViewCellSelectionStyleNone;

1.取消cell的分割線

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

//設定tableview 不能滾動

self.tableView.scrollEnabled =NO;

//UITableView的建立

UITableView *tabelView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
//Plain樣式:分割槽頭/分割槽尾會停靠在tableView頭部和尾部
//group樣式:分割槽頭/尾高度大於Plain樣式時的高度,頭尾不會停靠

//調整單元格之間的距離
-(void)setFrame:(CGRect)frame{
// tableView邊框的寬度 #define kTableBorderWidth 5
// 更改x、寬度
frame.origin.x = kTableBorderWidth;
frame.size.width -= kTableBorderWidth * 2;
// 更改頂部間距、每個cell之間的間距
frame.origin.y += kTableTopBorderWidth;
frame.size.height -= kTableViewCellMargin;
[super setFrame:frame];
}

//設定每一行的高度,所有行的高度相等

tabelView.rowHeight = 100;

//設定分割線的顏色

tabelView.separatorColor = [UIColor yellowColor];

//設定分割線的樣式

tabelView.separatorStyle = UITableViewCellSeparatorStyleNone;

//設定資料代理

tabelView.dataSource = self;

//設定其他相關代理

tabelView.delegate = self;

//註冊cell類
//告訴tableView cell中所有重用標識reuse,都使用這種cell
//[UITableViewCell class]:不是建立,而是表示有這樣的的型別的類

[tabelView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"reuse"];

三、方法實現
//返回特定分割槽行數 -- section
//tableView 預設有一個分割槽

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

//返回每一行要顯示的cell

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//當重用池中具有對應重用標識的cell時,返回重用池中的cell
//如果沒有,則返回nil;
//當註冊了標識對應的cell類後,重用池,會建立一個新的cell返回
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse”];
//當沒有註冊的時候,則需判斷
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reuse"];
}
}

//返回分割槽數

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 5;
}

//返回指定row的行高

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

//返回每一個分割槽頭的標題

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

//返回指定分割槽頭的高度

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

//返回每一個分割槽尾的標題

-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

//返回View做為分割槽頭

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

//返回View做為分割槽尾

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

//cell被點選時響應的方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

//重新重新整理頁面

[self.tableView reloadData];

//讀取資料

NSString *path = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"plist”];

//通過分割槽號和行號獲取對應的cell

[tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)];

//通過cell獲取所在的分割槽號和行號

[tableView indexPathForCell:(nonnull UITableViewCell *)];

//獲得右邊的索引

-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

//返回一個分割槽頭

self.tableView.tableHeaderView= [self headerView];

//消除沒有顯示的橫槓

self.tableView.tableFooterView= [[UITableView alloc]init];

//點選彈起 選中彈起光影恢復原狀

[tableView deselectRowAtIndexPath:indexPath animated:YES];

相關文章