如何使用XIB自定义uitableView Section Header?

时间:2011-06-14 01:56:43

标签: ios cocoa-touch uitableview interface-builder

我正在尝试为UITableView创建自定义的节标题。我找到了一些参考资料,说明如何在代码中完成这项工作(#1349571)。

我正在尝试确定是否可以在Interface Builder中创建UIView并使用它来自定义标题,类似于如何为UITableViewCell执行此操作?

3 个答案:

答案 0 :(得分:7)

是可以使用使用XIB创建的标题视图。创建一个XIB和类来管理XIB(UIView类)。使用

YourNibClassName* v = [[[NSBundle mainBundle] loadNibNamed:@"YOUR_XIB_NAME" owner:self options:nil] firstObject];

//With this method you can load any xib for header view

tableView.tableHeaderView = v;
[v release];

修改

在viewForHeaderInSection中返回此视图,如下所示

YourNibClassName* v = [[[NSBundle mainBundle] loadNibNamed:@"YOUR_XIB_NAME" owner:self options:nil] firstObject];
//Do some stuff here like setting text on labels etc.
return [v autorelease];

答案 1 :(得分:3)

由于我们有原型单元格,您还可以在表格中添加原型单元格。 在Interface Builder中填写原型单元的标识符。 (例如HeaderCell) 然后,您可以在viewForHeaderForSection中使用它,就像在cellForRowAtIndexPath中使用单元格一样。

示例:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *headerView = [tableView dequeueReusableCellWithIdentifier:HeaderCellID];
    UILabel *label = (UILabel *)[headerView viewWithTag:100];
    label.text = [self tableView:self.tableView titleForHeaderInSection:section];

    return headerView;
}

答案 2 :(得分:0)

将它添加为表格上方的标签,并删除我曾经做过的搁浅的表格标题,一旦我知道这听起来很奇怪但是有效