iPhone + UITableView + Zeilenhöhe
-
06-07-2019 - |
Frage
Ich gründe die Zeilenhöhe meines UITableView
folgenden Code
[tableView setRowHeight: 100.00];
Ich bin mit der einzigen Zeile als Trennzeichen im UITableView
.
Eventhough die Höhe über Einstellung, Höhe der Zeile nicht ändern bekommen.
Lösung
Sie sollten implementieren
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Delegatmethode. und das Rück 100,0 dort.
Andere Tipps
Sie sollten die heightForRowAtIndexPath
vermeiden, wenn alle Reihen ähnlicher Höhe sind und die rowHeight
Eigenschaft verwenden. Gemäß der Dokumentation:
Es gibt Auswirkungen auf die Leistung zu verwenden Tableview: heightForRowAtIndexPath: statt rowHeight. Jedes Mal, wenn eine Tabellenansicht angezeigt wird, ruft er Tableview: heightForRowAtIndexPath. Auf dem Delegierten für jede ihrer Zeilen, die in einer signifikanten Performance-Problem mit Tabellenansichten, die eine große Anzahl von Zeilen (etwa 1000 oder mehr)
In der UITableViewController Unterklasse es getan werden könnte, zum Beispiel, in dem viewDidAppear
Verfahren (die UITableViewController
hat einen Verweis auf die Tableview):
self.tableView.rowHeight = 79.f;
Die Zeilenhöhe wird in die Zellen, wenn sie zuerst gebacken wird angezeigt.
Haben Sie setzen UITableView # rowHeight bevor die Datenquelle einstellen?
Wenn nicht, so tun.
Wenn aus irgendeinem Grund Sie nicht können, Ihre andere Option ist UITableView # reload nach dem Einstellen der Zeilenhöhe zu nennen.
Ich habe wie diese hier tableobj
ist nichts anderes als UITableView
Objekt in meiner Anwendung.
- (void)viewDidLoad
{
[super viewDidLoad];
[tableObj setRowHeight:100.0f];
}
oder handhabt es in numberOfRowsInSection:
wie:
- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section {
[tableObj setRowHeight:100.0f];
return [soandso count]; // soandso is my object
}
Da die rowHeight
gesetzt, bevor die Datenquelle einstellen. Er arbeitete für mich (für gleiche Zeilenhöhen).
Die bessere und sauberere Lösung ist, die Delegatfunktion (Vielleicht nicht die beste, wenn Ihre UITableView hat viele Zeilen ...) zu implementieren.
Auch denken, dass UITableVieCell UIView sind, so dass Sie ihre Höhe zunächst ändern könnte ...
Die Teilnehmer sind sehr mächtig in iPhone dev, hier die UITableViewDelage:
Sie können auch die indentForRow ändern, displayCellForRow, heightForRow, bearbeiten Sachen .....
Ich denke nicht, gibt es ein solches Verfahren in UITableView ...
Sie können stattdessen die Eigenschaft rowHeight ...
Versuchen,
tableView.rowHeight = 100;