解決在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;
}