当我触摸表格视图框架之外的点时,有没有办法调用表格视图委托函数-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
?
我尝试覆盖tableview的-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
的superview并更改该点,然后让事件继续传递到tableview和tableview的子视图。只是滚动事件有效,但是单击事件。
这是一个演示project
答案 0 :(得分:0)
问题是UITableView无法使所有单元保持活动状态。单元是可重用的。在可见区域之前和之后仅放置几个单元格。 尝试直接调用委托方法。
tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath)
如果只想对表视图上当前可用的单元格调用此方法。
if let _ = tableView.cellForRow(at: indexPath) {
tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath)
}
您可以轻松地将屏幕位置转换为单元格的索引。