如何覆盖 reloadRowsAtIndexPath?
Posted
技术标签:
【中文标题】如何覆盖 reloadRowsAtIndexPath?【英文标题】:How to override reloadRowsAtIndexPath? 【发布时间】:2016-06-17 16:33:02 【问题描述】:我正在尝试为 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
时,它从不调用覆盖版本。
你知道怎么解决吗?
【问题讨论】:
【参考方案1】:reloadRowsAtIndexPaths
并不是为此而生的。您可能想改用
tableView(_:willDisplayCell:forRowAtIndexPath:)
。例如:
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
print("job")
if isNotUserFirstMessage(indexPath)
configureNotUserFirstMessageCell(cell, showImage: false)
else
configureNotUserNotFirstMessageCell(cell, showImage: false)
【讨论】:
好的,我现在就试试,但是我们如何在特定的行上调用这个方法呢? 只需将它添加到您的表格视图委托中,当显示单元格时它会自动调用。 这里,当有插入时,我想检查以前插入的单元格,然后显示它的图像。你认为它会起作用吗? @Bram'in 只有一种方法可以找出答案!试试看:) 我正在尝试,但 void 函数中的返回存在错误:( 如果我有返回类型,则表示该函数不符合协议 :(以上是关于如何覆盖 reloadRowsAtIndexPath?的主要内容,如果未能解决你的问题,请参考以下文章