UITableViewの最初のヘッダーの高さを設定します。他のヘッダーについては、デフォルトの高さのままにしておきます。以下のコードで「someDefaultHeight」の代わりにどの値/定数を配置できますか?
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return someDefaultHeight;
}
ありがとう
IOS 5.0以降では、ほとんどのデリゲートメソッドでUITableViewAutomaticDimensionを返すことができます。ドキュメントページの下部にあります。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == CUSTOM_SECTION)
{
return CUSTOM_VALUE;
}
return UITableViewAutomaticDimension;
}
私のアプリでデフォルトをチェックすると、グループ化されたテーブルのデフォルトは高さ22で、グループ化されていないテーブルのデフォルトは高さ10です。
TableviewのsectionHeaderHeightプロパティの値を確認すると、それがわかります。
実際にトリックを行う:)
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == 0)
return kFirstSectionHeaderHeight;
return [self sectionHeaderHeight];
}
完全を期すため:iOS7以降では、グループ化されたスタイルセクションヘッダーの高さは55.5
最初と38
次のヘッダー。 (DCIntrospectで測定)
Swift 4.2の場合、UITableView.automaticDimensionを返す必要があります
デフォルトの高さを取得するには、単にsuper
に処理させます:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return [super tableView:tableView heightForHeaderInSection:section];
}
正しい答えがここにあるかどうかはわかりませんが、iOS 5のグループ化されたテーブルビューでは、10も22も正しい高さではないようです。 this の質問に基づいて、44少なくともおおよそ正しい高さに見えます。