2016-09-15 6 views
0

Мне нужно показать 2 разных ячейки в таблице. Я попробовал это, установив прототип таблицы. но он все еще показывает предупреждение Prototype table cells must have reuse identifiers.Как показать 2 настраиваемых ячейки в UITableView

Может кто-нибудь попросит меня устранить это предупреждение.

Круги по этой ссылке: UITableview with more than One Custom Cells with Swift

+0

вместо двух разных ячеек вы можете использовать одну ячейку с двумя различными зрением. –

+0

@SaurabhPrajapati Да, возможно, мы сможем это сделать. Но я пытаюсь понять ошибку, которую я сделал с использованием прототипов. – Dee

ответ

1

В раскадровке вы должны определить идентификатор для ячеек, как на изображении ниже enter image description here

Тогда в cellForRowAtIndexPath вы должны использовать специальный идентификатор для конкретной ячейки, как это

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if indexPath.row == 0 { 
     let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Identifier1") 
     //set the data here 
     return cell 
    } 
    else if indexPath.row == 1 { 
     let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Identifier2") 
     //set the data here 
     return cell 
    } 
} 
+0

Я сделал это, но я не могу загрузить ячейку. Не знаю, где я ошибаюсь – Dee

+0

@Dee Добавить точки останова и проверить, получаете ли вы объект ячейки или нет. – Rajat

1

Вы должны установить Reuse Identifier для обеих прототипов, и они должны быть разными. Затем в вашем методе cellForItemAtIndexPath вы должны деактивировать ячейки с помощью соответствующего Reuse Identifier на основе указанного указателя.

Reuse Identifier

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableView { 

    switch indexPath.section { 
    case 0: 
     return tableView.dequeueReusableCellWithIdentifier("CustomCell1", forIndexPath: indexPath) 
    case 1: 
     return tableView.dequeueReusableCellWithIdentifier("CustomCell2", forIndexPath: indexPath) 
    break: 
     return UITableViewCell() 
    } 
} 
Смежные вопросы