web-dev-qa-db-ja.com

UITableViewのセクションヘッダーのデフォルトの高さ

UITableViewの最初のヘッダーの高さを設定します。他のヘッダーについては、デフォルトの高さのままにしておきます。以下のコードで「someDefaultHeight」の代わりにどの値/定数を配置できますか?

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return someDefaultHeight;
}

ありがとう

122
rein

IOS 5.0以降では、ほとんどのデリゲートメソッドでUITableViewAutomaticDimensionを返すことができます。ドキュメントページの下部にあります。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return UITableViewAutomaticDimension;
}
200
Ajaxharg

私のアプリでデフォルトをチェックすると、グループ化されたテーブルのデフォルトは高さ22で、グループ化されていないテーブルのデフォルトは高さ10です。

TableviewのsectionHeaderHeightプロパティの値を確認すると、それがわかります。

49
paulthenerd

実際にトリックを行う:)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == 0)
        return kFirstSectionHeaderHeight;
    return [self sectionHeaderHeight];
}
25
BadPirate

完全を期すため:iOS7以降では、グループ化されたスタイルセクションヘッダーの高さは55.5最初と38次のヘッダー。 (DCIntrospectで測定)

6
ronhippler

Swift 4.2の場合、UITableView.automaticDimensionを返す必要があります

3
Muvimotv

デフォルトの高さを取得するには、単にsuperに処理させます:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return [super tableView:tableView heightForHeaderInSection:section];
}
2
Hendrik

正しい答えがここにあるかどうかはわかりませんが、iOS 5のグループ化されたテーブルビューでは、10も22も正しい高さではないようです。 this の質問に基づいて、44少なくともおおよそ正しい高さに見えます。

2
Jason George