10

我使用下面的代码来设置 UITableView 的标题视图的高度

- (CGFloat)tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section
{
    CGFloat height = 0.0; //  

    return height;
}

但显示异常,如下图

在此处输入图像描述

有白块,欢迎评论

4

4 回答 4

28

Tableview 框架设置不正确。请检查代码或 nib

委托返回 headerview 高度,它在 Table 中是正确的,因为 tableview 的边缘和单元格之间没有空间

使用setFrame方法通过代码正确设置

将高度设置为 0 不会改变分组表的部分高度。所以作为一个调整使用一个非常小的值但不是像 0

- (CGFloat)tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section
{
    CGFloat height = 0.001;   
    return height;
}
于 2013-03-13T15:15:42.100 回答
7

你应该nil从你的实施返回- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

//return header view for specified section of table view
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    //check header height is valid
    if([self tableView:tableView heightForHeaderInSection:section] == 0.0)
    {
        //bail
        return nil;
    }

    //create header view
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, [self tableView:tableView heightForHeaderInSection:section])];

    //

    //return header view
    return view;
}
于 2013-03-13T15:19:07.117 回答
7

迅速 4

正如其他答案所说,如果您返回 0 作为高度,这意味着您说设置默认值。

使用小数字CGFloat.leastNonzeroMagnitude来解决问题。

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return CGFloat.leastNonzeroMagnitude
    }

希望这有帮助。

于 2019-03-16T07:08:06.267 回答
3

0 表示默认值。使高度非常小,例如 0.01 以“隐藏”它。

于 2016-09-10T16:14:51.340 回答