web-dev-qa-db-ja.com

iOS7でグループ化されたUITableViewのヘッダービューの高さ

設定画面を作成し、グループ化されたテーブルビューを使用しています。ヘッダーを設定しようとすると、ヘッダービューの上に間隔が表示されます。私は再確認し、-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)sectionで正しいビューの高さを渡しました。

この動作のスクリーンショットは次のとおりです。 enter image description here

タイトル(VIBRATE、SILENT MODE)が入った私のビューを見ることができ、bgの色が暗く、その上のスペースが明るくなっています。

17
Gal

多くの検索の後、私はついにこれに対する修正を見つけました。テーブルビューのデリゲートは、heightForFooterInSectionを実装し、非常に小さい数を返す必要があります。 0を返すと、デフォルトで、余分なスペースが発生していたのと同じスペースになります。

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return CGFLOAT_MIN;
}
73
Casey

これを試して:

- (void)viewWillAppear:(BOOL)animated{
    CGRect frame = self.tableView.tableHeaderView.frame;
    frame.size.height = 1;
    UIView *headerView = [[UIView alloc] initWithFrame:frame];
    [self.tableView setTableHeaderView:headerView];
}
5
Shekhar Gupta

これはCaseyの応答とほとんど同じですが、デリゲートメソッドを実装する必要がないため、少しクリーンです。テーブルビューを設定するときは、プロパティsectionFooterHeightを0に設定するだけです。これにより、少ないコードで同じことが実現されます(DBL_MIN奇妙さ)。

tableView.sectionFooterHeight = 0.0;

4

単純なハックであることは間違いありません。しかし、それを行う簡単な方法は、次の関数を作成することです。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
      return 48.0f; // header height
}

その高さをカスタマイズします。

私が知らない、それを行う他の方法があることはかなり確かです。

1
monkeyMoo

Swift 2.2バージョン:

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return CGFloat.min
}
0
Lucas Novaes

Appleは、グループ化されたテーブルビューの上部に余分なスペースを設けるという意識的な設計上の決定を下したようです。UITableViewのc​​ontentInsetを調整してみてください。 私の答えはこちら)を参照してください。

0
nvrtd frst