Загрузка нескольких прототипных ячеек в UITableView
В настоящее время у меня есть UITableView, содержащий 2 строки пользовательской ячейки. Недавно я добавил в свою раскадровку вторую ячейку прототипа и безуспешно пытался добавить ее в свой UITableView. Мой метод cellForRowAtIndexPAth выглядит следующим образом:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: FlightsDetailCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as FlightsDetailCell
cell.userInteractionEnabled = false
if indexPath.section == 0 {
cell.graphView.enableBezierCurve = true
cell.graphView.enableReferenceYAxisLines = true
cell.graphView.enableYAxisLabel = true
cell.graphView.colorYaxisLabel = UIColor.whiteColor()
cell.graphView.delegate = UIApplication.sharedApplication().delegate as BEMSimpleLineGraphDelegate
cell.graphView.dataSource = UIApplication.sharedApplication().delegate as BEMSimpleLineGraphDataSource
return cell
}
if indexPath.section == 1 {
cell.graphView.enableBezierCurve = true
cell.graphView.enableReferenceYAxisLines = true
cell.graphView.enableYAxisLabel = true
cell.graphView.colorYaxisLabel = UIColor.whiteColor()
cell.graphView.delegate = self
cell.graphView.dataSource = self
return cell
}
if indexPath.section == 2 {
let cell2: FlightsInformationCell = tableView.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as FlightsInformationCell
cell2.userInteractionEnabled = false
return cell2
}
return cell
}
Раздел 0 и раздел 1 правильно загружают ячейку прототипа с идентификатором «Ячейка», но когда я перехожу к загрузке раздела 2, я получаю другой экземпляр первой ячейки прототипа, кроме любых данных, поскольку ей не был назначен делегат или источник данных. В противном случае ячейки устанавливаются идентично с идентификаторами «Cell» и «Cell2» соответственно, но я не могу получить доступ к «Cell2».
Дополнительное пояснение: у меня есть 2 прототипа ячеек в моей раскадровке, они оба настроены одинаково, поскольку их идентификаторы помечены одинаковыми блоками, наследуются от своих собственных классов и были объявлены одинаковыми в моем UITableView. Что касается делегатов и источников данных, моя исходная ячейка прототипа содержит график (использует BEMSimpleLineGraph), каждый экземпляр этой ячейки имеет свой собственный делегат и источник данных и показан в приведенном выше коде для действий 0 и 1.
Первая ячейка, изображенная ниже (серым цветом), является исходной ячейкой, которая содержит график, а ячейка 2 чуть ниже белого цвета.