【发布时间】:2019-02-07 03:36:09
【问题描述】:
我的表格视图自定义单元格行有 3 个元素:嵌入在 UIScrollView 中的 UITextField、标签和按钮。 'didSelectRowAt indexPath' 函数仅在同时点击任何 2 个 3 行元素时运行。为什么是这样?我没有添加任何触摸手势。
可能有用的信息:tableview delegate 和 dataSource 设置为 self。删除 tableView.reloadData() 将导致代码更改不会反映在 UI 中。 self.tableView.beginUpdates() & self.tableView.endUpdates() 无效。
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("test")
if dataSource.data[indexPath.row].isDataCollapsed() {
print("expanded")
dataSource.data[indexPath.row].isCollapsed = false
tableView.reloadData()
}
}
提前谢谢你!
编辑:
由于我无法弄清楚,我求助于使用触摸手势。谢谢。
【问题讨论】:
-
尝试在主线程上运行这段代码
-
通过为 UITextField 和 UIButton 提供 'isUserInteractionEnabled = false' 来禁用触摸事件。
-
@JarvisTheAvenger 我该怎么做? @AshokPolu,感谢您的推荐,但是没有用。还有其他建议吗?
-
我认为你应该首先通过禁用 UI 元素用户交互来尝试它。
-
@MansurAhmed 遇到同样的问题,你解决了吗?