Die meisten der vorherigen Antworten oben sind zu hacky. Sie würden jederzeit in der Zukunft kaputt gehen, wenn Apple beschließt, dieses unerwartete Verhalten zu beheben.
Wurzel des Problems:
-
Ein UITableView
mag es nicht, eine Überschrift mit einer Höhe von 0,0 zu haben. Wenn Sie versuchen, eine Überschrift mit einer Höhe von 0 zu haben, können Sie zur Lösung springen.
-
Auch wenn Sie später eine Höhe ungleich 0,0 Ihrer Überschrift zuweisen, mag ein UITableView
es nicht, anfangs eine Überschrift mit einer Höhe von 0,0 zugewiesen zu bekommen.
Lösung:
Die einfachste und zuverlässigste Lösung ist sicherzustellen, dass die Höhe Ihrer Überschrift nicht 0 ist, wenn Sie sie Ihrem TableView zuweisen.
Etwas in dieser Art würde funktionieren:
// Ersetzen Sie UIView durch die Klasse, die Sie als Ihre Überschrift verwenden:
UIView *tableViewHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.tableView.bounds.size.width, CGFLOAT_MIN)];
self.tableView.tableHeaderView = tableViewHeaderView;
Etwas in dieser Art würde früher oder später zu dem Problem führen (typischerweise nach einem Scrollen):
// Ersetzen Sie UIView durch die Klasse, die Sie als Ihre Überschrift verwenden:
UIView *tableViewHeaderView = [[UIView alloc] initWithFrame:CGRectZero];
self.tableView.tableHeaderView = tableViewHeaderView;