一窄刘、UITableView的創(chuàng)建
UITableView *tabelView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
//Plain樣式:分區(qū)頭/分區(qū)尾會停靠在tableView頭部和尾部
//group樣式:分區(qū)頭/尾高度大于Plain樣式時的高度错沽,頭尾不會停靠
//行號 row? 從0開始
//分區(qū) section? 從0開始
二挠铲、屬性設置
//設置每一行的高度,所有行的高度相等
tabelView.rowHeight = 100;
//設置分割線的顏色
tabelView.separatorColor = [UIColor yellowColor];
//設置分割線的樣式
tabelView.separatorStyle = UITableViewCellSeparatorStyleNone;
//設置數據代理
tabelView.dataSource = self;
//設置其他相關代理
tabelView.delegate = self;
//注冊cell類
//告訴tableView cell中所有重用標識reuse,都使用這種cell
//[UITableViewCell class]:不是創(chuàng)建萨驶,而是表示有這樣的的類型的類
[tabelView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"reuse"];
三代虾、方法實現
//返回特定分區(qū)行數 -- section
//tableView 默認有一個分區(qū)
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
//返回每一行要顯示的cell
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//當重用池中具有對應重用標識的cell時爆袍,返回重用池中的cell
//如果沒有华糖,則返回nil崇呵;
//當注冊了標識對應的cell類后再悼,重用池,會創(chuàng)建一個新的cell返回
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse”];
//當沒有注冊的時候乘瓤,則需判斷
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reuse"];
}
}
//返回分區(qū)數
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 5;
}
//返回指定row的行高
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
//返回每一個分區(qū)頭的標題
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
//返回指定分區(qū)頭的高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
//返回每一個分區(qū)尾的標題
-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
//返回View做為分區(qū)頭
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
//返回View做為分區(qū)尾
-(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”];
//通過分區(qū)號和行號獲取對應的cell
[tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)];
//通過cell獲取所在的分區(qū)號和行號
[tableView indexPathForCell:(nonnull UITableViewCell *)];
//獲得右邊的索引
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
//返回一個分區(qū)頭
self.tableView.tableHeaderView= [self headerView];
//消除沒有顯示的橫杠
self.tableView.tableFooterView= [[UITableView alloc]init];
//點擊彈起 ?選中彈起光影恢復原狀
[tableView ?deselectRowAtIndexPath:indexPath ?animated:YES];