UItableView在实际使用时会根据需求的不同进行不同的设置
自定义cell
1.注册,需要几种cell注册几种cell,根据组号的不同进行替换即可
2.行高(最好是设置预估行高,让cell的内容将cell撑开)
//通过代理方式设置行高,同时可以根据组号设置不同组号的行高
- (CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath{
if(indexPath.row==0)
return200;
return200;
}
//设置预估行高
self.tableViwe.estimatedRowHeight = 200;
self.tableViwe.rowHeight = UITableViewAutomaticDimension;
自定义表头表尾
1.自定义表头
表头的的大小是根据自定义的view进行设置的,不需要tableView进行设置
- (void)setUpHeaderView{
GGTableViewHeaderView *headerView = [[GGTableViewHeaderView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 350)];
self.tableView.tableHeaderView = headerView;
}
2.自定义表尾
同上
- (void)setUpFooterView{
GGTableViewFooterView *footerView = [[GGTableViewFooterView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 70)];
footerView.delegate = self;
self.tableView.tableFooterView = footerView;
}
自定义组头组尾
1.自定义组头
根据需求的可以根据组号设置不同高度和视图
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if(section == 0)
return 200;
return GGTableViewHeaderH;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
if(section == 0){
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), GGTableViewHeaderH)];
view.backgroundColor = [UIColor blueColor];
return view;
}
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), GGTableViewHeaderH)];
view.backgroundColor = [UIColor blueColor];
UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), GGTableViewHeaderH)];
title.text = self.dataList[section].title;
title.textAlignment = NSTextAlignmentCenter;
[view addSubview:title];
return view;
}
2.设置组尾
同上
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
if(section == 0)
return 200;
return GGTableViewFooterH;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
if(section == 0){
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), GGTableViewFooterH)];
view.backgroundColor = [UIColor redColor];
return view;
}
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), GGTableViewFooterH)];
view.backgroundColor = [UIColor redColor];
UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), GGTableViewFooterH)];
title.text = @"footer";
title.font = [UIFont systemFontOfSize:11];
[view addSubview:title];
return view;
}
拓展
1.tableView的索引
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
return [self.dataList valueForKey:@"title"];
}
2.组头组尾设置文字
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return self.dataList[section].title;
}
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
return @"footer";
}