Я хочу добавить 2 или более различных пользовательских ячейки в один Tableview, используя раскадровку. Я знаю, как добавить разные ячейки без раскадровки. Я всегда делаю это следующим образом:Как добавить различные пользовательские ячейки в один TableView с раскадровки?
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];
}
И теперь мой вопрос: как я могу сделать это с раскадрой? Добавить одну специальную ячейку можно. Но я не могу добавить две разные ячейки. Не могли бы вы мне помочь?
спасибо! Вы можете разместить пример того, как он работает с соответствующим идентификатором на основе индексного пути? –
большое спасибо :) –
Я сделал это, как вы сказали. И я получаю сообщение об ошибке. «Источник данных Tableview должен вернуть ячейку из tableview: cellforrowatindexpath« Может быть, я что-то забыл? Я связал ячейку в раскадровке с пользовательской ячейкой и ярлыками. ... NSInteger row = [indexPath row]; NSInteger row = [indexPath row]; NSString * идентификатор; CustomCell * cell = [tableView dequeueReusableCellWithIdentifier: identifier]; if (row == 0) {identifier = @ "ThirdCell"; cell.clubNameLabel.text = @ "% @", [название клуба objectAtIndex: строка]; } return cell; .... –