Wie fügen Sie verschiedene Benutzerdefinierte Zellen in einem TableView mit Storyboard?
möchte ich hinzufügen, dass 2 oder mehr verschiedene Benutzerdefinierte Zellen in einem Tableview, durch die Verwendung von Storyboards.
ich weiß, wie ich hinzufügen verschiedene Zellen ohne storyboard. Ich habe das immer auf diese Weise:
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//pictureCell = [[DetailPictureCell alloc]init];//(DetailPictureCell *)[tableView dequeueReusableCellWithIdentifier: CellIdentifier];
pictureCell.header = true;
[pictureCell setHeader];
if (cell == nil) {
if ([indexPath row] == 0) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HeaderAngebotViewCell" owner:self options:nil];
NSLog(@"New Header Cell");
}
if([indexPath row] ==1){
NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"productCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
Und nun meine Frage: Wie kann ich das machen mit storyboard?
Hinzufügen einer benutzerdefinierten Zelle ist möglich. Aber ich kann nicht hinzufügen, zwei verschiedene Zelle. Können Sie mir bitte helfen?
InformationsquelleAutor Bolot NeznaJu | 2013-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Eigenschaften-Inspektor für die Tabelle anzuzeigen, wählen Sie "Dynamische Prototypen" und unten, wählen Sie die Anzahl von Prototyp-Zellen. Geben Sie jeder Zelle eine andere Kennung und beim abarbeiten der Warteschlange Zellen in
cellForRowAtIndexPath
verwenden Sie die entsprechende Kennung basiert auf indexPath.ich danke Ihnen sehr 🙂
ich habe es getan, wie du gesagt hast. Und ich bekomme eine Fehlermeldung. "Tableview datasource muss wieder eine Zelle von tableview:cellforrowatindexpath" Vielleicht habe ich etwas vergessen? Ich gelinkt habe die Zelle im storyboard, um benutzerdefinierte Zelle, und die labels auch. ...NSInteger Zeile = [indexPath row]; NSInteger Zeile = [indexPath row]; NSString *name; CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (row == 0) {identifier =@"ThirdCell"; Zelle.clubNameLabel.text =@"%@",[clubname objectAtIndex:row]; }return cell;....
Sie sind entweder nicht immer eine Zelle zurück von
dequeueReusableCellWithIdentifier
oder Sie sind nicht wieder auscellForRowAtIndexPath
. Aus deinem Kommentar, ich würde vermuten, es ist die erstere, weil Sie sich mit dem Telefon zu entfernen, bevor Sie einen Wert füridentifier
. In jedem Fall sollten Sie einen Haltepunkt incellForRowAtIndexPath
und Schritt für Schritt durch, um zu sehen, wo Dinge schief gehen.InformationsquelleAutor Timothy Moose