2013-03-28 144 views
0

有没有办法给UIGestureRecognizer的形状(一系列共同ORDS的),它可以当用户绘制用手指形状来触发一个动作?我在考虑字母形状,但它可能是任何东西。如何识别字母与UIGestureRecognizer

编辑:

我发现这个https://github.com/chrismiles/CMUnistrokeGestureRecognizer这可能会做我想做的。

+0

你应该创建一个'UIGestureRecognizer'的实例,并且你可以在那里定义自定义的手势,并且使用它你将能够直接识别任何你可以定义的东西。 – holex 2013-03-28 10:02:41

+0

嗨@cannyboy你可以运行你在gihub中获得的代码吗? – 2013-03-29 05:01:15

回答

2

不幸的是实现自定义手势识别器并不像提供UIGestureRecognizer与形状或一系列点的那样简单。你必须继承UIGestureRecognizer和写入通过touchesBegan:withEvent:touchesMoved:withEvent:等跟踪用户的交互然后,根据线路长度和角度用户绘制手势的等代码,你确定它是否成功匹配你期待什么,火UIGestureRecognizer回调。

这会导致固有的复杂情况,因为用手指弄乱手势时用户不太精确。你将不得不设计你的姿态,以容忍什么被承认;太严格,它将是无用的,过于通用,它会报告太多的误报。

我怀疑如果你试图识别大量的手势,比如字母表的字母,而不是实现26个不同的手势识别器,你最好写一个记录用户输入一次的通用手势并检查它是否与您在某处存储的手势定义的选择相匹配。然后实现一个自定义回调,告诉处理程序匹配哪个手势。

从A按非常著名的“Beginning iOS Development: Exploring the iOS SDK”系列奉献一个章节的一小部分,以实现自定义手势识别器。随附的源代码可以从官方Apress网站here(底部的源代码/下载标签)下载。
请参阅第17章中的第627-632页:“点击,触摸和手势”。

Apple的Event Handling Guide for iOSGesture Recognizers章节包含“创建自定义手势识别器”部分,其中还包含相关信息和示例。

+0

感谢您的详细解答。我用我找到的解决方案编辑了我的问题。 – cannyboy 2013-03-28 22:12:31

+0

@cannyboy没问题,我很抱歉,我无法建议任何高质量的第三方库来实现你想要的东西(比如你找到的项目)。我从来不需要实现一些简单的自定义手势识别器。我希望你的解决方案能为你解决,谢谢你发布它。 – 2013-03-28 22:18:21

+0

请注意,您发布到本书的链接是针对盗版电子书的,因此我已将其删除。 – 2013-07-05 17:46:53

相关问题