SectionView.xib只是一个单元格大小的填充标签:
@interface SectionView : UITableViewHeaderFooterView
{
@property(weak, nonatomic) IBOutlet UILabel *newsCategoryTitle;
}
然后在viewForHeaderInSection
中,我会设置标签并返回视图。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
SectionView *header = (SectionView *) [[self tableView] dequeueReusableHeaderFooterViewWithIdentifier:@"SectionView"];
header.backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, header.bounds.size.width, header.bounds.size.height)];
NSString *title;
[[header newsCategoryTitle] setText:title];
return header;
}
最后但并非最不重要的是,我会将sectionView.xib
注册到包含TableView的viewCOntroller。
没有Storyboard我会在ViewController中注册sectionView.xib,如下所示:
[[self tableView] registerNib:[UINib nibWithNibName:@"SectionView" bundle:nil] forHeaderFooterViewReuseIdentifier:@"SectionView"];
我不知道如何以及如何在故事板中立即完成。
新的故事板只包含表格中的自定义单元格定义,但我还没有找到任何方法将故障板添加到故事板中。
任何建议都将受到赞赏。
答案 0 :(得分:1)
我实际上非常接近。
而不是在
中注册nib-(instancetype)initWithCoder:(NSCoder *)aDecoder
我必须在
中注册- (void)viewDidLoad {
现在它完美无缺。我乐意接受更好的答案。
答案 1 :(得分:0)
从故事板制作自定义单元格并将其用作viewForHeaderInSection。
-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
static NSString *CellIdentifier = @"SectionHeader";
UITableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
return headerView;
}