解决在tableView返回组标题直接返回字符串,带来的不便设置组标题样式的问题解决办法,设置尾部标题和此类似
// 返回组头部view的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 20;
}
//返回每组头部view - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *headerView = [[UIView alloc]init];
headerView.backgroundColor = [UIColor groupTableViewBackgroundColor];
UILabel *label = [[UILabel alloc]init];
label.textColor = [UIColor grayColor];
label.font = [UIFont systemFontOfSize:13];
label.frame = CGRectMake(15, 0, 100, 20);
[headerView addSubview:label];
if (section == 0) {
label.text = @"第0组title";
}else{
label.text = @"第1组title";
}
return headerView;
}
封装 UITableViewHeaderFooterView 也像tableViewCell一样也可以循环利用 自定义 UITableViewHeaderFooterView
+ (instancetype)headerFooterViewWithTabelView:(UITableView *)tableView{
BSHeaderFooterView *headerFooterView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:headerIdentifier];
if (headerFooterView == nil) {
headerFooterView = [[BSHeaderFooterView alloc]initWithReuseIdentifier:headerIdentifier];
}
return headerFooterView;
}
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier{
if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
self.contentView.backgroundColor = [UIColor groupTableViewBackgroundColor];
UILabel *label = [[UILabel alloc]init];
label.textColor = [UIColor grayColor];
label.font = [UIFont systemFontOfSize:13];
label.frame = CGRectMake(13, 0, 100, 20);
[self addSubview:label];
self.label = label;
}
return self;
}
//接收外界传进来的字符串并赋值 - (void)setTitle:(NSString *)title{
_title = [title copy];
self.label.text = title;
}
//返回组头部view方法 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
BSHeaderFooterView *headerFooter = [BSHeaderFooterView headerFooterViewWithTabelView:tableView];
if (section == 0) {
headerFooter.title = @"第0组title";
}else{
headerFooter.title = @"第1组title";
}
return headerFooter;
}