如何从 - (void)touchesEnded:withEvent: 获取 UITouch 位置的 UIView 对象?

Posted

技术标签:

【中文标题】如何从 - (void)touchesEnded:withEvent: 获取 UITouch 位置的 UIView 对象?【英文标题】:How to get the UIView object at the location of UITouch from - (void)touchesEnded:withEvent:? 【发布时间】:2016-08-30 09:53:49 【问题描述】:

我想在触摸被抬起的位置(离开屏幕)获取对象。

这将用于实现拖放,我有这些方法用于覆盖:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;

在 touchesEnded:withEvent: 中使用 [[touches anyObject] view] 为我提供了我第一次触摸的 UIView 对象,但不是我释放触摸的位置。

使用[[touches anyObject] locationInView:self.view] 确实给了我释放触摸的位置,但我必须将坐标映射到 UIView。

【问题讨论】:

这可能会有所帮助:http://***.com/questions/16328875/how-to-find-out-what-view-a-touch-event-ended-at @Ronak Chaniyara 啊。谢谢你。我在任何地方都找不到它;我想我只是在谷歌上搜索了错误的单词。 你修好了!@David 【参考方案1】:

这个问题的答案是在另一个措辞不同的问题中回答的。

@Ronak Chaniyara 回答:https://***.com/a/16329436/3920809

【讨论】:

以上是关于如何从 - (void)touchesEnded:withEvent: 获取 UITouch 位置的 UIView 对象?的主要内容,如果未能解决你的问题,请参考以下文章

touchesEnded 坏了 UIScrollView

UIScrollView 和 touchesBegan / touchesEnded 等

如何使用 touchesBegan 和 touchesEnded 检测点击手势

如何在 UIScrollView 或等效中实现 touchesEnded

从 touchesEnded 获取图像名称

touchesEnded:withEvent: 没有从我的 UIView 调用,它位于 UITableView 的顶部