tableView:viewForHeaderInSection: 默认值是什么?

4
我希望只有一个自定义的页面标题,其余的标题保持默认。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
     return ???;
}

我应该返回什么来显示默认的标题视图?
3个回答

9
默认的头部视图是nil,意味着没有任何头部!

谢谢 :) 结果发现它崩溃是因为我做的其他事情。 - Zac Altman

0
正如Saeed所说,缺省的返回值是"nil"。
如果你想要一个视图放在那里,你可以在这个方法中分配一个自定义的视图,并让它返回该视图。
例如,如果你想要一张图片作为该部分的标题,你应该这样做:
[view addSubview:pictureView];

return view;

这将返回您传递的索引所表示的部分的视图。


0

好的,文档没有说明如何提供默认视图。你试过返回nil看会发生什么吗?

如果这样不行,我建议采用以下方法解决(假设您需要在默认标题和自定义标题之间动态切换):

  • 向tableview代理对象添加一个名为shouldShowDefaultHeaderBOOL实例变量。
  • 重写respondsToSelector方法,像这样:
if (shouldShowDefaultHeader == YES && [NSStringFromSelector(aSelector) isEqual:@"tableView:viewForHeaderInSection:"]) { return NO; }
return [super respondsToSelector:aSelector];
  • 相应地切换shouldShowDefaultHeader实例变量。

编辑:阅读其他答案,返回nil应该可以正常工作,而不是搞乱选择器。然而,无论如何都很酷。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接