gpt4 book ai didi

iphone - TouchesBegan 未在 UIView 中作为 UITableViewCell 的 subview 触发

转载 作者:行者123 更新时间:2023-12-03 20:14:37 25 4
gpt4 key购买 nike

我正在 UITableView 的单元格内创建一个自定义下拉菜单,并将此菜单添加为单元格内容 View 的 subview 。

当我单击单元格内的菜单时,我会放大 View 以显示所有菜单项:现在菜单 View 位于 tableView 和所有单元格上方。

因此,当我选择自定义 View 中的某个项目时, TouchesBegan 仅在我调用菜单的 UITableView 单元格上方的 View 部分触发,而不是在我放大的所有 View 中触发。

如果我触摸另一个单元格上方的部分 View ,则 TouchesBegan 会在表格 View 的单元格中触发,而不是在所有单元格顶部的 View 中触发。

有什么建议吗?

最佳答案

View 通常不会响应 View 或在其边界之外绘制的 View 部分上的触摸事件。有几种可能的选项可以解决此问题:

  • 当下拉菜单可见时放大单元格以适合整个菜单,但这可能会对视觉效果产生负面影响,具体取决于您的设计。

  • 在 Controller 上添加菜单而不是单元 View 。如果您获得了此路由,则可以使用 TableView 中的 UIScrollViewDelegate 事件在用户滚动表时重新定位菜单。请记住考虑菜单显示在最后一个单元格上的情况,如果始终向下绘制,则可能会过度绘制 Controller 的边界。

  • 覆盖hitTest:withEvent:pointInside:withEvent在您的菜单 View 及其 super View 上,以通知操作系统您对事件做出了响应,甚至超出了其正常范围。

关于iphone - TouchesBegan 未在 UIView 中作为 UITableViewCell 的 subview 触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16420979/

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