我的应用程序所有屏幕中的字母手势识别

Posted

技术标签:

【中文标题】我的应用程序所有屏幕中的字母手势识别【英文标题】:Alphabetic gesture recognition in all screens of my app 【发布时间】:2013-03-20 05:59:17 【问题描述】:

我正在努力在我的应用中检测字母手势。因此,当用户在屏幕上绘制一个 C 时,会发生一个特殊的动作,依此类推。我正在使用识别器类,该类具有关于每个字母接触点的预定义数据,并且检测正常。我希望在我的所有屏幕中都使用此功能,因此我将以下方法添加到 appDelegate 类并仅检测窗口中的触摸,这里发生的情况是屏幕内的其他视图(如 tableview、scrollview)阻止触摸事件发送到窗口 - 如果这完美地发生了,那么我的代码就会像一个魅力一样工作。任何帮助表示赞赏。

- (void)processGestureData
   
     NSString *gestureName = [recognizer findBestMatchCenter:&center angle:&angle   score:&score];
     NSLog(@"gesture Name: %@",gestureName);

     if ([gestureName isEqualToString:@"N"] || [gestureName isEqualToString:@"n"])
     //handle N gesture
     

     if ([gestureName isEqualToString:@"C"]) 
     //handle C gesture
     

   


 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 
  [recognizer resetTouches];
  [recognizer addTouches:touches fromView:self.window];
 
 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
 
  [recognizer addTouches:touches fromView:self.window];
 
 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
 
  [recognizer addTouches:touches fromView:self.window];

  [self processGestureData];
 

【问题讨论】:

您能告诉我您是如何检测到用户绘制的是哪个字母吗?任何的想法 ?我不知道如何以及从哪里开始? 我使用github.com/preble/GLGestureRecognizer进行手势识别,您必须为您的手势采集样本点并将其添加为具有相应值的JSON文件。 感谢分享... 【参考方案1】:

我认为您需要一些触摸拦截窗口来处理所有触摸。 如果您的手势被识别,则对其进行处理,否则将触摸传递给您的视图控制器。详情请参考this link

【讨论】:

是的,我这样做了,但是我的底层视图根本没有收到触摸事件。 我在你的链接中做了同样的事情。

以上是关于我的应用程序所有屏幕中的字母手势识别的主要内容,如果未能解决你的问题,请参考以下文章

当滚动视图子视图不在屏幕上时,手势识别器不起作用

如何为所有屏幕的 iPhone 应用程序添加垂直滑动手势?

手势识别器不适用于选项卡式应用程序

检测在手势识别器对象区域之外开始的滑动

如何识别 Apple Watch 应用中的手势?

如何在iPhone应用程序中实现手写识别功能?