我有UITableView
嵌套在另一个UITableView
内。
在嵌套的tableView中,当用户点击一个单元格时,单元格会突出显示,但是没有调用委托方法didSelectRowAt indexPath:
。
正在调用其他委托方法,例如willDisplay cell: forRowAt indexPath:
或scrollViewDidScroll(_:)
等方法。所以这告诉我代表等正确连接。
在同一个应用程序的另一部分中,我在另一个UITableView
内部使用相同类型的结构UITableView
,并且在那里工作正常。
我对这两者进行了广泛的比较,到目前为止我还没有发现差异,也没有任何线索为什么一个应该工作而另一个不应该![/ p>
请参阅嵌套UITableViewCell
的实现。
如果控制台会记录“检测到触摸”这一行会很好。
它会记录“滚动”和“将显示单元格”的行。
import UIKit
class TestTableViewCell: UITableViewCell {
}
extension TestTableViewCell: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return tableView.dequeueReusableCell(withIdentifier: "FileCell")!
}
}
extension TestTableViewCell: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("touch detected")
}
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
print("will display cell")
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("scrolling")
}
}
答案 0 :(得分:0)
最后解决方案非常简单。
我为外UITapGestureRecognizer
设置了UITableView
。
我在那里解雇了键盘。
删除UITapGestureRecognizer
后,它开始正常工作。
我完全忽视了这一点,但现在已经解决了!