Ich möchte die Höhe des ersten Headers in meiner UITableView festlegen. Für die anderen Header möchte ich, dass sie die Standardhöhe bleiben. Welchen Wert / welche Konstante kann ich im folgenden Code anstelle von "someDefaultHeight" setzen?
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return someDefaultHeight;
}
Vielen Dank
iphone
cocoa-touch
uitableview
Zügel
quelle
quelle
Antworten:
Ab IOS 5.0 können Sie UITableViewAutomaticDimension in den meisten Delegatmethoden zurückgeben. Es befindet sich am Ende der Dokumentationsseite
quelle
UITableViewAutomaticDimension
kehrt ich zurück-1
(fest codierte Konstante) und ich sehe überhaupt keine Abschnitte in meinemUITableView
.UITableViewAutomaticDimension
zeigt -1 wennNSLog
es?- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
Wenn Sie die- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
Methode implementieren , funktioniert dies nicht.UITableViewAutomaticDimension
eine Höhe von Null haben , wenn Sie sie implementieren und zurückgeben .viewForHeaderInSection
Ihnen müssen nur einstellenestimatedSectionHeaderHeight
Nach Überprüfung der Standardeinstellungen in meiner App sieht es so aus, als ob für eine gruppierte Tabelle die Standardeinstellung 22 und für eine nicht gruppierte Tabelle die Standardeinstellung 10 ist.
Wenn Sie den Wert der Eigenschaft sectionHeaderHeight in Ihrer Tabellenansicht überprüfen, sollte dies angegeben werden.
quelle
UITableViewStyleGrouped
ist 22 undUITableViewStylePlain
ist 10.Eigentlich den Trick machen :)
quelle
return [self.tableView sectionHeaderHeight];
oder noch besserreturn [tableView sectionHeaderHeight];
. Beide geben jedoch -1 für mich zurück, möglicherweise weil ich keine Feder oder kein Storyboard verwende.Der Vollständigkeit halber: In iOS7 + gilt die Höhe für gruppierte Abschnittsüberschriften
55.5
für die erste und38
für die folgenden Überschriften. (gemessen mit DCIntrospect)quelle
Für Swift 4.2 sollten Sie UITableView.automaticDimension zurückgeben
quelle
Ich bin mir nicht sicher, wie die richtige Antwort hier lautet, aber weder 10 noch 22 scheinen die richtige Höhe für eine gruppierte Tabellenansicht in iOS 5 zu sein. Ich verwende 44, basierend auf dieser Frage, und es scheint zumindest grob zu sein die richtige Höhe.
quelle
Um die Standardhöhe zu erhalten, lassen Sie
super
es einfach handhaben:quelle
[super tableView:tableView heightForHeaderInSection:section];
Gibt für mich 0 zurück, vielleicht weil ich keine Feder oder kein Storyboard verwende.Dies sollte den Trick tun
quelle
return [self sectionHeaderHeight];
[self sectionHeaderHeight];
erzeugt einen Fehler. Meinten Sie[tableView sectionHeaderHeight];
?