我有一个UITableView,它被设计为一个分组的tableView。在某些情况下,我需要为标题创建自定义视图,在其他情况下我需要默认视图。
创建自定义标头很容易 - 只需使用委托:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
但是,如果我想要默认的标题视图,我该从该委托返回什么?
我已经尝试返回nil,这只有在表视图设置为Plain时才能正常工作。如果表格视图被设置为Grouped,那么当我返回nil时,默认标题会消失。
如果考虑到我有时需要自定义标题视图,如何获取默认标题?
修改
我想我发现了问题。在tableView:heightForHeaderInSection中:我执行以下操作:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if ([myArray count] == 0) return 80;
else return [tableView sectionHeaderHeight];
}
似乎[tableView sectionHeaderHeight]为我的标题返回了不正确的高度。它将它设置为10,但它应该是大约30。
答案 0 :(得分:10)
上述问题的正确答案是:
返回默认视图return nil
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
return nil;
}
返回默认标题高度返回-1
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return -1;
}
这对我有用!
答案 1 :(得分:0)
在编辑中回答了我自己的问题。我需要为节标题返回一个硬编码的高度。
答案 2 :(得分:0)
实际上,如果您需要默认标头,则应使用以下delegate method:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"my title text";
}