- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 UITableViewCell
它有一个水平滚动的 UIScrollView
.如何确保当用户触摸 UIScrollView
, UITableViewCell
被选中。
UITableViewCell
有一个 UIScrollView
作为 subview 以及其他一些 subview 。当用户点击非 UIScrollView
时 subview ,单元格按预期被选中。但是,当用户点击 UIScrollView
, 没有任何反应。
UIScrollView
有一些 subview 。用户可以按预期水平滚动 ScrollView 。
有什么方法可以让用户在浏览 UIScrollView
时, UIScrollView
处理触摸事件,但是当用户点击 UIScrollView
时, 它将事件传递给 super View ?
编辑 -我尝试覆盖 touchesEnded(_:with:)
如下-
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
superview?.touchesEnded(touches, with: event)
}
没用
其次,我尝试添加一个 UITapGestureRecognizer
到 ScrollView 并检查是否检测到水龙头。它确实检测到水龙头。但是,为了选择 UITableViewCell
,我需要得到相应的 UITableViewCell
对于 ScrollView ,找到它的 indexPath 然后使用 UITableView
选择该 indexPath。
我希望是否有更简单的方法来执行我想要实现的目标。
最佳答案
我通过向 ScrollView 添加 UITapGestureRecognizer
解决了这个问题。
在用户点击 ScrollView 时调用的函数中,我以编程方式选择如下行 -
guard let indexPath = tableView.indexPath(for: cell) else { return }
tableView.selectRow(at: indexPath, animated: true, scrollPosition: .none)
tableView(tableView, didSelectRowAt: indexPath)
关于ios - 如何让 scrollview 将触摸事件传递给 superview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53916006/
我是一名优秀的程序员,十分优秀!