我试图覆盖tableView单元格的方法reloadRowAtIndexPath
。
我想要覆盖cellForRowAtIndexPath
:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
if(isUserTalking(indexPath))
{
return userMessageCell(indexPath)
}
else
{
if(isNotUserFirstMessage(indexPath))
{
return notUserFirstMessageCell(indexPath)
}
else
{
return notUserNotFirstMessageCell(indexPath)
}
}
}
以这种方式:
func tableView(tableView: UITableView, reloadRowsAtIndexPaths indexPath: NSIndexPath) -> UITableViewCell
{
print("job")
if(isNotUserFirstMessage(indexPath))
{
return notUserFirstMessageCell(indexPath, showImage: false)
}
else
{
return notUserNotFirstMessageCell(indexPath, showImage: false)
}
}
但是当我使用self.myTable.reloadRowsAtIndexPath
时,它永远不会调用覆盖版本。
你知道怎么解决吗?
答案 0 :(得分:0)
reloadRowsAtIndexPaths
并非真正意义上的。您可能希望使用
tableView(_:willDisplayCell:forRowAtIndexPath:)
代替。 E.g:
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
print("job")
if isNotUserFirstMessage(indexPath) {
configureNotUserFirstMessageCell(cell, showImage: false)
} else {
configureNotUserNotFirstMessageCell(cell, showImage: false)
}
}