Oft kommt es vor dass das man ein eigenes Layout für TableView-Zellen benutzen möchte.
Hier möchte ich eine gute Möglichkeit schildern dies zum größten Teil über den Interface-Builder zu erledigen.
Zuerst muss man eine neue Datei vom Typ NSObject” anlegen, diese nennen wir z.B. “EigeneZelle”.
Danach erstellen wir auch eine “Exmpty XIB”-Datei, diese nennen wir auch “EmptyZelle.xib”, also so wie unsere Klassen-Datei.
Die Klassen-Datei muß umgeändert werden:
#import <Foundation/Foundation.h>
@interface EigeneZelle : NSObject {
}
ändern in:
#import <UIKit/UIKit.h>
@interface EigeneZelle : UITableViewCell {
}
Somit ist nun klar dass es sich um eine abgewandelte TableViewCell-Klasse handelt.
In diese Klasse fügt man noch “wie gewohnt” die IBOutlets und Properties für div. Labels und andere Views ein die man im Interface-Builder nutzen möchte.
Editiert nun die “EigeneZelle.xib” im interface-Builder, zieht ein “UITableViewCell” in das Dokumenten-Fenter und ändert die Klasse von “UITableViewCell” auf “EigeneZelle”. Nun müssen hier nur noch die Outlets verbunden werden.
Um das Ganze nutzen zu können muss man in der tableView:cellForRowAtIndexPath: Methode folgende Zeile nutzen:
EigeneZelle *cell = (EigeneZelle *)[tableView dequeueReusableCellWithIdentifier:@"EigeneZelleIdentifier"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EigeneZelle" owner:self options:nil];
for (id oneObject in nib)
if ([oneObject isKindOfClass:[EigeneZelle class]])
cell = (EigeneZelle *)oneObject;
}
// Zelle konfigurieren ...
cell.eigenesLabel.text = @"Test";