gpt4 book ai didi

ios - 与 UITableView 的 super View 上的 UIPanGestureRecognizer 冲突

转载 作者:行者123 更新时间:2023-11-30 11:12:45 26 4
gpt4 key购买 nike

我正在尝试构建与 iOS 上 Apple map 中的抽屉菜单大致相似的东西。

在此Xcode project我在 VC 的 View 上附加一个 UIPanGestureRecognizer,当平移发生时,垂直移动 UITableView 并禁用滚动。

问题是每次平移结束后,只有在 UITableView 上的某处发生第二次点击后才会调用 didSelectRow 方法。当然,我希望在第一次点击后调用它。

有趣的是,如果我启用表格滚动,并且在手势识别器的委托(delegate)中有 shouldRecognizeSimultaneouslyWith 返回 true,则不会发生该错误。

另一个有趣的事情是,如果您尝试将手指放在抽屉内列表中最近的位置条目上,然后尝试将抽屉向上拉,Apple map 本身似乎也会发生类似的事情。

感谢您的帮助!

最佳答案

我不太明白你在说什么。但我认为主要问题在于“Chain Responder”。当您使用PanGestureRecognizer时和 UITableView属性(property)isScrollEnable = false在响应者链中 PanGestureRecognizer它是第一个被调用的人,系统等待失败或事件未处理,然后将其传递给响应者链中的下一个,即 UITableView 。因此,需要很长时间才能被称为 didSelectRow功能我建议您创建一个新的 UIView并插入 ViewController在 Storyboard o Nib 中输入 UITableVIew除此之外UIView ,然后链接 PanGestureRecognizer到那个新的UIView 。这样,响应者链就不会与两者发生冲突,因为系统可以检测到拖动何时位于新的 UIView 中。并仅调用 PanGestureRecognizer当它位于UITableView时将调用didSelectRow

致以诚挚的问候如果没有解决就写

关于ios - 与 UITableView 的 super View 上的 UIPanGestureRecognizer 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019149/

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