UiTableview mit einer großen Menge an Zellen

Eine UiTableView ist ja generell für die Haltung von einer großen Anzahl an Elementen und deren Darstellung gedacht. Wer jedoch versucht eine wirklich große Zahl (1000+) in eine TableView zu setzen, wird unter Umständen feststellen, das dies enorm langsam passiert.

Die Lösung ist die Methode heightForRowAtIndexPath. Diese wird für jede Zelle neu aufgerufen, in diesem Fall also über 1000 mal, was eine enorme Ladezeit nach sich zieht.

Als Lösung, sofern alle Zellen gleich hoch sein sollen, kann die rowHeight auch bei Initialisierung der TableView gesetzt werden.

cell.image deprecated use setImage

Wer mit einer UITableView arbeitet, wird auch UITableViewCell nutzen. Bei einer TableViewCell kann in der default Zelle ein Bild (UIImage) gesetzt werden.
Auf den ersten Blick nutzt man einfach

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIImage *theimage = [UIImage imageNamed:@"web.jpg"];
cell.image = webimage;

Dies führt aber zu der Fehlermeldung:

„warning: ’setImage:‘ is deprecated (declared at …“

Lösung:

[cell.imageView setImage:[UIImage imageNamed:@"web.jpg"]];

Der Beitrag passt thematisch zu:

http://www.alexanderjaeger.de/cell-text-deprecated-use-cell-textlabel-text/

UITableView

UITableView

UITableView

UITableView ist ein mächtiges Werkzeug zur Darstellung und Verarbeitung von Informationen. Meistens ist die Anwendung, eine View, ein UITableView in dem eine Reihe von Informationen angezeigt werden. Diese Informationen haben dann jeweils unterschiedliche Actions.

Doch nicht immer trifft dieser UseCase ein, bzw. eine Anpassung der UITableViews ist notwendig. Daher wird hier nach und nach eine Sammlung an Tweaks, Tipps und Kniffen rund um UITableView gesammelt werden.

Hier ein paar Tweaks zum Thema UITableView:

Hintergrund Farbe der ganzen TableView ändern

myTableView.backgroundColor = [UIColor redColor];

Mehrere UITableViews in einer View

Wenn in einer UIView mehrere UITableViews geführt werden, so ist es möglicherweise notwendig, jeder TableView eine unterschiedliche ANzahl an Rows zu geben, dies kann folgendermaßen umgesetzt werden:

(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (tableView == self.myTableView1) {
return 2;
} else if (tableView == self.myTableView2) {
return 3;
} else {
// wird nie erreicht
}
}

Performancetuning

Hier findet man ne coole Möglichkeit, die Höhe einer Zeile performant zu ändern:

http://iphoneincubator.com/blog/windows-views/the-right-way-to-set-the-height-of-tableviewcells

Links zum Thema

http://www.iphonedevsdk.com/forum/iphone-sdk-development/26739-embed-uitableview-within-uiview.html

http://chris-software.com/index.php/dev-center/tables/

http://pessoal.org/blog/2009/02/25/customizing-the-background-border-colors-of-a-uitableview/

http://blogs.remobjects.com/blogs/mh/2009/04/11/displaying_variably_sized_text_cells_in_