2009-08-05 3 views
21

Grüße! Ich weiß, dass UITableViewsectionHeaderHeight nur für gruppierte Tabellen verwendet wird, aber ich werde fragen sowieso (falls es irgendeine Möglichkeit, dies zu tun, die nicht offensichtlich ist) ...UITableView Abschnitt Kopfhöhe für nicht gruppierte Tabelle

Gibt es eine Möglichkeit zu ändern die Kopfhöhe des Abschnitts (und damit die Schrift/Größe) für einen NON -Gruppentabelle?

Ich hoffe "ja" oder zumindest ein "vielleicht" ... aber fürchte, es könnte ein "Nein" sein. Habe es, Leute.

Antwort

49

Ja.

verwenden Delegatmethode:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; 
} 

Natürlich entsprechend ändern. Es gibt natürlich auch die eine für Fußzeile auch:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { 
    return 44; 
} 
+0

Dank! Natürlich habe ich das in iPhone OS 3.0 versucht, aber es schien nicht zu funktionieren. Es würde nur die gleiche Höhe bleiben. Allerdings funktioniert es in 3.1 gut, also vermute ich, dass wir dieses Problem auf "Bugfix" oder "Pilotfehler" setzen. (Ich gebe immer gerne zu, wenn es das letztere ist, aber ich bin mir nicht sicher _why_ es funktionierte nicht früher, wenn dies kein Bugfix ist. Selbst wenn ich sectionHeaderHeight im Spiel hätte, würde es von tableView: heightForHeaderInSection überschrieben werden: Hmm ...) –

1

Mindestens seit iOS 9 (getestet) UITableView.sectionHeaderHeight ist für Normaltabellenansichten arbeiten (nicht gruppierten), wie gut!

Sie erhalten die Standardkopfhöhe (normalerweise 22,0).

Natürlich könnte der Delegate für Tabellenansichten diesen Standardwert in seiner Methode tableView: heightForHeaderInSection: angepasst haben.

Der folgende Codeausschnitt gibt die Höhe eines Header-Abschnitt definiert:

CGFloat headerHeight = self.tableView.sectionHeaderHeight; 
if ([self.tableView.delegate respondsToSelector:@selector(tableView:heightForHeaderInSection:)]) { 
    // possibly custom header height 
    headerHeight = [self.tableView.delegate tableView:self.tableView heightForHeaderInSection:indexPathForCell.section]; 
}