Как добавить различные пользовательские ячейки в один TableView с раскадровки?
Я хочу добавить 2 или более разных пользовательских ячейки в один 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];
}
И теперь мой вопрос: как я могу сделать это с помощью раскадровки?
Можно добавить одну настраиваемую ячейку. Но я не могу добавить две разные ячейки. Можете ли вы мне помочь?
Ответы
Ответ 1
В инспекторе атрибутов для представления таблицы выберите "Динамические прототипы" и ниже, чтобы выбрать количество ячеек прототипа. Дайте каждой ячейке другой идентификатор и при удалении ячеек в cellForRowAtIndexPath
используйте соответствующий идентификатор на основе indexPath.
![enter image description here]()
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *identifier;
if (indexPath.row == 0) {
identifier = @"OneCellId";
} else if (indexPath.row == 1) {
identifier = @"OtherCellId";
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
//configure cell...
}