无论我可能触摸过啥“视图”,如何获取触摸坐标?

Posted

技术标签:

【中文标题】无论我可能触摸过啥“视图”,如何获取触摸坐标?【英文标题】:How to get touch coordinates REGARDLESS of what "view" I may have touched?无论我可能触摸过什么“视图”,如何获取触摸坐标? 【发布时间】:2009-08-14 11:33:26 【问题描述】:

在我的 ViewController 中,我有一个 UITableView,其中包含一些自定义单元格。当我触摸一个单元格时,我想将触摸坐标直接放到我的 UIViewController 中。问题是,我只能从未被 UITableView 占用的屏幕部分获取坐标...,每当我的触摸落在 UITableView 的屏幕部分时,我的坐标就会被 NSLogged 回为 (0.000, 0.000)。无论碰巧触摸到哪个视图,我如何获取屏幕坐标?我从 UIScreen 开始吗? UIWindow?...

问题:如何获取触摸坐标,而不管我可能触摸过什么“视图”?

【问题讨论】:

你最终想要达到什么目标 - 可能有更好的方法。 我试图知道我在 UITableViewCell(自定义)中触摸的坐标,这样我就可以通过触摸的 x 坐标来计算包含在细胞被触动了。尝试从调用 ViewController 获取接触点没有(得到单元格行但没有单元格中的接触点)工作,并且尝试从自定义单元格实现触摸处理似乎禁用了视图控制器的某些委托方法(得到单元格触摸坐标但没有单元格行)...最后我将 UITableView 子类化并使用了 HitTest 。 【参考方案1】:

您可以让 UITableView 挑选润色并将它们报告给它的视图控制器,后者又可以将它报告给另一个视图控制器,或者类似的东西。我不确定设置 tableView opaquew 是否会允许触摸到下面的触摸,但如果你没有,你可以试试。

【讨论】:

以上是关于无论我可能触摸过啥“视图”,如何获取触摸坐标?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中如何获取任意视图触摸位置(全局或局部)的坐标

SwiftUI 中如何获取任意视图触摸位置(全局或局部)的坐标

SwiftUI 中如何获取任意视图触摸位置(全局或局部)的坐标

jquery mobile 如何获取触摸的坐标

如何将子视图上的触摸事件的坐标转换为其父视图中的坐标?

如何从 Swift 中的 valueChanged 事件中获取触摸坐标