0

UILongPressGestureRecognizerを使用する前に、UIPanGestureRecognizerを使用するUIViewがあります。UIPanGestureRecognizerに、UILongPressGestureRecognizerのプレッシャーについてのメッセージが表示されますが、私のアプリはブール値を取りません。これは、trueを課しても常にfalseです。どのようにできるのか?

 -(IBAction)longGesture:(UILongPressGestureRecognizer *)gestureRecognizer{


   if(fromRiga ==0){
    if ([gestureRecognizer state]==UIGestureRecognizerStateBegan){
        self.inLongPress = YES;
        self.view.backgroundColor =[UIColor darkGrayColor];
        gestureRecognizer.allowableMovement=200;

      }else if([gestureRecognizer state]==UIGestureRecognizerStateEnded){
        self.inLongPress = NO;
      }
}

 - (IBAction)panGesture:(UIPanGestureRecognizer *)gestureRecognizer
  {
    NSLog(@"inLongPress is %@", self.inLongPress ? @"YES": @"NO");
  }

前もって感謝します

4

1 に答える 1

0

ビューに触れるとすぐにパン認識機能がトリガーされ、その瞬間からの動きがチェックされます。長押し認識機能は、パン認識機能よりもずっと後でトリガーされます (長い期間が終了した後)。panGestureは常に before と呼ばれているのではないかと思いlongGestureます。パン認識機能が長押し認識機能を完全にキャンセルしている可能性があります。

NSLogさらにステートメントを追加して、何が起こるかを確認する必要があります。


-(IBAction)longGesture:(UILongPressGestureRecognizer *)gestureRecognizer {
    NSLog(@"Long gesture");

    if (fromRiga == 0){
        if ([gestureRecognizer state] == UIGestureRecognizerStateBegan){
            self.inLongPress = YES;
            self.view.backgroundColor =[UIColor darkGrayColor];
            gestureRecognizer.allowableMovement=200;

            NSLog(@"Long gesture began, self.iLongPress = %@", self.iLongPress ? @"YES" : @"NO");
        } else if([gestureRecognizer state] == UIGestureRecognizerStateEnded) {
            self.inLongPress = NO;
            NSLog(@"Long gesture ended, self.iLongPress = %@", self.iLongPress ? @"YES" : @"NO");
        }
    }
}

- (IBAction)panGesture:(UIPanGestureRecognizer *)gestureRecognizer {
    NSLog(@"Pan gesture, self.iLongPress = %@", self.iLongPress ? @"YES" : @"NO");
}
于 2012-05-23T11:55:25.313 に答える