表头视图不响应触摸



我有一个UIView的自定义子类,用IB设计,其中包含一些标签和一个按钮。按钮上有一个 touchUpInside 事件的操作,目标是自定义视图。

我正在将此自定义视图附加到 UI 中表视图的 self.tableView.tableHeaderView。

奇怪的是,此自定义视图没有响应触摸。我可以通过表格视图旁边的所有标签和按钮很好地看到它,这意味着表格视图可以正确处理并显示它,但它没有响应触摸。我检查了整个视图层次结构,所有涉及的视图都将用户交互启用为是。如果我将其他一些控件拖到该自定义视图中,例如开关,分段控件。他们也没有回应。就像自定义视图中的这些控件没有注册触摸一样。

这没有任何意义。我没主意了。您能否帮助允许按钮上的触摸事件到达其父视图?

什么是"headerTableView"?你的意思是 UITableViewHeaderFooterView 吗?您是否尝试过在根 UITableViewHeaderFooterView 上设置 userInteractionEnabled?

这是一个黑客,它将检测按钮触摸并以编程方式触发touchUpInside:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
{
    super.touchesBegan(touches, with: event)
    if let touch = touches.first, button.bounds.contains(touch.location(in: button)) {
        button.sendActions(for: UIControl.Event.touchUpInside)
    }
}

我不知道你真正的问题是什么,因为没有这个按钮应该可以工作。

最新更新