10

以下のコードを使用して、UITableViewのヘッダービューの高さを設定しました

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

    return height;
}

しかし、以下のように異常を表示します

ここに画像の説明を入力してください

白いブロックがあります、あなたのコメントを歓迎します

4

4 に答える 4

28

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 に答える