是否在表格视图单元格上选择没有响应
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 上选择了哪些项目