UITableview 的背景视图上的 UITapGestureRecognizer 不起作用
Posted
技术标签:
【中文标题】UITableview 的背景视图上的 UITapGestureRecognizer 不起作用【英文标题】:UITapGestureRecognizer on UITableview's background view not working 【发布时间】:2014-07-03 19:24:18 【问题描述】:我创建了一个UIView
并附加了一个UITapGestureRecognizer
。我已将视图设置为UITapGestureRecognizer
的目标。然后我将视图设置为我的表格视图的背景视图。问题是UITapGestureRecognizer
似乎永远不会触发,即使我的表视图中没有行。有什么建议吗?
谢谢。
【问题讨论】:
我假设您的表格视图使用手势识别器覆盖了背景视图。然后,表格视图有自己的手势识别器,例如滚动表格。因此,它不会将手势转发到您的视图。问题是你想要实现什么。如果您真的想在表格视图看到手势之前捕获它们,您可以例如在表格视图上插入一个透明的子视图,并在那里捕获手势。如果您对它们不感兴趣,那么您可以将其转发到表格视图。 为什么不使用didSelectCell
而不是点击手势?
【参考方案1】:
我认为无需使用手势识别器创建自定义视图并将其设置为tableView
的backgroundView
。最好使用带有自己的表格视图的点击手势识别器。喜欢关注
在这里,点击手势识别器与表格视图连接,并且在点击表格视图或表格视图单元格时,与手势识别器相关的事件被触发(这里的事件是 tableViewTapped:
)。
取消标记点击手势识别器的Canceled in View
复选框(在屏幕截图中的右侧面板中)以启用表格视图单元格的单击选择。
【讨论】:
以上是关于UITableview 的背景视图上的 UITapGestureRecognizer 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
TapGesturecognizer 在 iphone X 12.1 的背景视图中不起作用
如何从 UITableView iphone 获取 UITableView IndexPath?