如何将 Obj-C 中的 UITouch 对象与 WebKit JavaScript 中的相应触摸对象匹配?

Posted

技术标签:

【中文标题】如何将 Obj-C 中的 UITouch 对象与 WebKit JavaScript 中的相应触摸对象匹配?【英文标题】:How can I match UITouch objects in Obj-C with corresponding touch objects in WebKit JavaScript? 【发布时间】:2012-06-04 22:40:26 【问题描述】:

我想不出一种将 UIKit 中的 UITouch 对象与 javascript 中对应的触摸对象相匹配的好方法。

对于 UITouch,通常使用hash 消息返回的值来识别跨触摸阶段的 UITouch 实例。在 html / JavaScript 中,touch.identifier 被使用并保证在多次触摸中是唯一的数字。

但是,[aUITouch hash]aTouch.identifier 返回的数字不相关。关于如何将 JavaScript 通知中收到的触摸对象与 Obj-C 中收到的 UITouch 对象相匹配的任何想法?

谢谢。

【问题讨论】:

【参考方案1】:

我想出的解决方案是使用从它们的位置派生的键将 UITouch 对象存储在字典中。因此,使用键“120:200”存储在 x 120 y 200 处发生的触摸。这一切都发生在覆盖主窗口类的 sendEvent 方法时。

我向这些触摸添加信息(在本例中为触摸区域的半径),然后使用类似的方案将它们推送到 JavaScript 运行时中的字典中。一般来说,WebKit 报告的位置与我的窗口类报告的位置相匹配,因此 JavaScript 运行时能够使用当前触摸位置作为哈希值来查找触摸半径。

【讨论】:

以上是关于如何将 Obj-C 中的 UITouch 对象与 WebKit JavaScript 中的相应触摸对象匹配?的主要内容,如果未能解决你的问题,请参考以下文章

我的 react js 代码如何与现有的 Obj-C 逻辑交互?

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

如何选择正确的视图来缩放视图中的多个 UIScrollView 对象(iPhoneSDK obj-C)?

如何将 ios 中的 Elavon 与在 obj-c 中使用 Apple Pay 集成?

iOS开发UITouch触摸API简介

iOS开发UITouch触摸API简介