Iphone 布尔值始终为false,即使我强制为true

Iphone 布尔值始终为false,即使我强制为true,iphone,objective-c,boolean,uigesturerecognizer,uipangesturerecognizer,Iphone,Objective C,Boolean,Uigesturerecognizer,Uipangesturerecognizer,我有一个UIView,在使用UILongPressGestureRecognitor之前,我先使用UIPangEstureRecognitor。对于UIPanGestureRecognizer,我收到一条关于UILongPressGestureRecognizer压力的消息,但我的应用程序不接受布尔值,即使我强制为真,这也始终为假。我该怎么办 -(IBAction)longGesture:(UILongPressGestureRecognizer *)gestureRecognizer{

我有一个UIView,在使用UILongPressGestureRecognitor之前,我先使用UIPangEstureRecognitor。对于UIPanGestureRecognizer,我收到一条关于UILongPressGestureRecognizer压力的消息,但我的应用程序不接受布尔值,即使我强制为真,这也始终为假。我该怎么办

 -(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");
  }

“提前感谢”

当您触摸视图时,平移识别器会立即触发,并从那时起检查移动情况。长按识别器的触发时间总是比平移识别器的触发时间晚得多(长时间结束后)。我怀疑
panGesture
总是在
longshirpose
之前调用。也许pan识别器完全取消了长按识别器

您应该通过添加更多的
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");
}

长手势开始=是;长手势结束=否;平移手势=否;好吧,这告诉了你想知道的一切。平移是在长手势之后进行的,甚至可能会取消长手势。