gpt4 book ai didi

ios - 如何让 scrollview 将触摸事件传递给 superview?

转载 作者:行者123 更新时间:2023-11-28 07:33:33 27 4
gpt4 key购买 nike

我正在尝试创建一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com