objective-c – 如何检测处理弯曲区域的触摸事件?

objective-c – 如何检测处理弯曲区域的触摸事件?,第1张

概述我开始使用原生iPad应用程序(如果需要,我们可以假设iOS 4.3),我需要有一系列相互碰撞的弯曲区域. 我喜欢一些关于处理这个问题的最佳方法的建议. 我有一个想法是使用WebView,只有一个JPG和一个HTML图像映射,但我真的更喜欢使用某种支持曲线的原生UI元素. 有什么建议? 我们有这样的问题.为了解决这个问题,我们在Adobe Illustrator中创建了一个黑白面具.您需要为所需的 我开始使用原生iPad应用程序(如果需要,我们可以假设iOS 4.3),我需要有一系列相互碰撞的弯曲区域.

我喜欢一些关于处理这个问题的最佳方法的建议.

我有一个想法是使用WebVIEw,只有一个JPG和一个HTML图像映射,但我真的更喜欢使用某种支持曲线的原生UI元素.

有什么建议?

解决方法 我们有这样的问题.为了解决这个问题,我们在Adobe Illustrator中创建了一个黑白面具.您需要为所需的每个不同区域执行此 *** 作.

接下来,我们导出了这个文件.我不记得文件导出选项,但基本上你得到一个文本文件,其中包含一些路径数据,包括行,贝塞尔曲线等.

然后我们接受了这个文件并写了一个解析它的导入器并创建了一个CGPath.

最后阶段很简单.您可以从UItouch获取触摸点并执行CGPathContainsPoint调用.

这是一些伪代码:

>在我们使用“1 XR”之前跳过线.那就是
在后续行中指示有意义的内容.
>使用“”分隔符将行拆分为一个组件数组.
>该行的最后一个组成部分是 *** 作.如果它是“m”则是路径移动,如果它是“C”,则它是一条bezIEr曲线,如果它是“L”则它是一条线.
>如果它是“Y”或“V”,那么您需要获取前一行的组件并解析如下:

(a)组件数包括行动,因此我们需要减少这一点.例如. 274.5600 463.6800米
(b)如果这条线有四个坐标而前一个有两个坐标,那么它就是贝塞尔节点的一个点节点.计算贝塞尔曲线点如下:

cp1x = prevIoUs line's components object at index 0    cp1y = prevIoUs line's components object at index 1    cp2x = this line's components object at index 0    cp2y = this line's components object at index 1    x = this line's components object at index 2    y = this line's components object at index 3

(c)否则,如果该线有四个坐标,前一行有四个或六个坐标,则如下图所示:

cp1x = this line's components object at index 0    cp1y = this line's components object at index 1    cp2x = this line's components object at index 2    cp2y = this line's components object at index 3    x = this line's components object at index 2    y = this line's components object at index 3

其中cp是“控制点”.所以你有控制点1和控制点2及其各自的x和y坐标.

总结

以上是内存溢出为你收集整理的objective-c – 如何检测/处理弯曲区域的触摸事件?全部内容,希望文章能够帮你解决objective-c – 如何检测/处理弯曲区域的触摸事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1229644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存