是否在表格视图单元格上选择没有响应

Posted

技术标签:

【中文标题】是否在表格视图单元格上选择没有响应【英文标题】:Did select on table view cell does not response 【发布时间】:2018-06-23 13:27:30 【问题描述】:

问题是我有一个带有 webview 的 tableview 在每个单元格内,webview 的内容可以滚动 水平,但不是垂直。它的高度与 细胞高度。所以问题是当我试图检测 表视图单元格的 DidSelect 没有响应。但是当我试图将 webview 的用户交互设置为 false 时,它​​可以工作,但 webview 不能再滚动了。有没有其他方法可以做到这一点。顺便说一句,webview 单元格必须包含 webview 没有其他方式。 这是为什么我需要在单元格内使用 webview 的屏幕截图。 Each cell contains webview content

【问题讨论】:

请出示一些代码。 触摸输入将转到 WebView,因此您不会在此处收到任何 didSelect 事件。还有 didSelect 的目的是什么? 我附上了截图。并且可以发现每个单元格都有wenview,didselect用于跟踪测验选择的选项(单项、多项) 【参考方案1】:

您可以将 UITapGestureRecognizer 添加到 WebView 并在 UITapGestureRecognizer 中执行操作。 (这里我补充一下如何添加手势识别器,你要根据自己的情况进行调整)

let tapRecognizer = UITapGestureRecognizer(target: webView, action:  #selector(self.handleSingleTap(_:)))
    tapRecognizer.numberOfTapsRequired = 1
    self.view.addGestureRecognizer(tapRecognizer)

func handleSingleTap(recognizer: UITapGestureRecognizer) 
    //Do something here with the gesture 

【讨论】:

这行得通,但要让 Tapgesture 为 webview 工作,目标应该是超类,并且对于 uiwebviewdelegate 的 (shouldRecognizeSimultaneouslyWith 委托函数) 也返回 true @MKh 如果对您有帮助,请修正我的答案并将其设置为正确,以便可以帮助更多人:)【参考方案2】:

您可以将延迟触摸设置为 false,以便为单元格设置选择事件。

tableview.delaysContentTouches = false

使用此链接获取详细信息 - https://developer.apple.com/documentation/uikit/uiscrollview/1619398-delayscontenttouches

【讨论】:

以上是关于是否在表格视图单元格上选择没有响应的主要内容,如果未能解决你的问题,请参考以下文章

表格视图中的按钮没有响应其单元格编号

来自 URL 的 Swift 表格视图图像在选择单元格之前不会显示

SwiftUI List 如何识别在 macOS 上选择了哪些项目

在单元格标签等于给定字符串的collectionView或TableView上选择行/部分?

故事板中的自定义单元格行高度设置没有响应

在单击表格单元格时推送新视图,这怎么可能? [关闭]