如何在表格框架之外调用表格视图单元格单击事件?

时间:2019-03-21 15:52:23

标签: ios uitableview responder-chain

当我触摸表格视图框架之外的点时,有没有办法调用表格视图委托函数-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

我尝试覆盖tableview的-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event的superview并更改该点,然后让事件继续传递到tableview和tableview的子视图。只是滚动事件有效,但是单击事件。

这是一个演示project

1 个答案:

答案 0 :(得分:0)

问题是UITableView无法使所有单元保持活动状态。单元是可重用的。在可见区域之前和之后仅放置几个单元格。 尝试直接调用委托方法。

tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath)

如果只想对表视图上当前可用的单元格调用此方法。

     if let _ =  tableView.cellForRow(at: indexPath) {
        tableView.delegate?.tableView?(tableView, didSelectRowAt: indexPath)
    }

您可以轻松地将屏幕位置转换为单元格的索引。