我的tableview的细胞发生了一些奇怪的事情。我有两个自定义单元格,第一个是" HeaderCell",第二个是" MapCell"。
该表有一个部分和两行(因此上面描述了两个自定义单元格)。
我在cellForRowAtIndexPath
方法中添加了一些日志记录。这是总方法:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell
print("outside if conditional (before) - section \(indexPath.section), row \(indexPath.row)")
if indexPath.row == 0 {
print("inside summarycell - section \(indexPath.section), row \(indexPath.row)")
let summaryCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! SummaryHeaderTableViewCell
// cell configuration goes here.
cell = summaryCell
}
else
{
let mapCell = tableView.dequeueReusableCellWithIdentifier("MapCell", forIndexPath: indexPath) as! MapTableViewCell
print("inside mapcell - section \(indexPath.section), row \(indexPath.row)")
// cell configuration goes here.
cell = mapCell
}
print("outside if (after) - section \(indexPath.section), row \(indexPath.row)")
return cell
}
但是,日志会将以下内容打印到控制台:
outside if conditional (before) - section 0, row 0
- inside summarycell - section 0, row 0
outside if (after) - section 0, row 0
outside if conditional (before) - section 0, row 1
- inside mapcell - section 0, row 1
outside if (after) - section 0, row 1
outside if conditional (before) - section 0, row 0
- inside summarycell - section 0, row 0
outside if (after) - section 0, row 0
outside if conditional (before) - section 0, row 1
- inside mapcell - section 0, row 1
outside if (after) - section 0, row 1
换句话说,它打印两次。我的numberOfSectionsInTableView
返回1个部分,numberOfRowsInSection
方法返回2行。
应用程序在模拟器中看起来很正常,它显示了应该的两行:
答案 0 :(得分:1)
您可能需要额外调用reloadData
,这会导致表格视图在额外的时间内查询其数据源。
但是,这不应该导致任何问题。数据源方法旨在向表格视图提供有关数据的信息 - 如果您提供两次相同的信息,则没有任何问题。