1

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

- (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];
 }
4

1 回答 1

1

我认为您需要一些触摸拦截窗口来处理所有触摸。如果您的手势被识别,则对其进行处理,否则将触摸传递给您的视图控制器。有关详细信息,请参阅此链接

于 2013-03-20T06:13:47.163 回答