我希望根据用户是点击UITableView单元格还是以编程方式选择它来调用不同的方法。不过,我似乎无法将它们分开;编程的程序运行didSelectRowAt indexPath中的所有内容。有没有办法更独立地使用它们?
这是我的程序代码:

func selectTableViewRowProgrammatically() {

    let indexPath = IndexPath(row: someVar, section: 0);
    self.tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableView.ScrollPosition.none)
    self.tableView(self.tableView, didSelectRowAt: indexPath)

}

谢谢!

最佳答案

当您手动选择表格单元格时,与以编程方式调用表格单元格时,您希望应用程序执行什么操作?
当前,您的编程方式调用的方法与点击单元格时调用的方法相同,即tableView(_:didSelectRowAt:)
因此,如果您想进行任何额外的计算,只需在调用selectTableViewRowProgrammatically之前或之后将其添加到self.tableView(self.tableView, didSelectRowAt: indexPath)方法中。
要以编程方式突出显示单元格,可以调用selectRow(at:animated:scrollPosition:)
注意文档中的Discussion部分:
调用此方法不会导致委托接收
tableView(:willSelectRowAt:)或tableView(:didSelectRowAt:)消息,
它也不向
观察员。

关于swift - 区分UITableView和以编程方式进行选择之间有区别吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54659694/

10-12 00:18
查看更多