Iphone 已结束的平移手势状态下的触摸次数未进入iOS

Iphone 已结束的平移手势状态下的触摸次数未进入iOS,iphone,objective-c,Iphone,Objective C,我在图像视图中执行了平移手势。我将触摸次数设置为2 当用户开始平移时,它将输入if([sender state]==UIgestureRecognitizerStateStateBegined)和if(sender.NumberOfTouchs==2),并且im将触摸次数作为2 但当用户结束pan时,它正在输入([sender state]==UIgestureRecognitizerStateEnded),但没有插入if(sender.NumberOfTouchs==2),并且ended中的触

我在图像视图中执行了平移手势。我将触摸次数设置为2

当用户开始平移时,它将输入if([sender state]==UIgestureRecognitizerStateStateBegined)和if(sender.NumberOfTouchs==2),并且im将触摸次数作为2

但当用户结束pan时,它正在输入([sender state]==UIgestureRecognitizerStateEnded),但没有插入if(sender.NumberOfTouchs==2),并且ended中的触摸数为0

我一次又一次地测试,以确保当触碰以两个手指结束时,End的结果为零

谁能帮我一下吗?请告诉我哪里出了问题

我完全停留在这一点上

- (void)panGestureHandler:(UIPanGestureRecognizer *)sender
{

    if ([sender state] == UIGestureRecognizerStateBegan ) {
        gesture_ = [[SSGesture alloc]init];

        if (sender.numberOfTouches == 2) {
            startLocation = [sender locationInView:self.view];

            CGPoint firstPoint = [sender locationOfTouch:0 inView:self.imageView];
            initialPointOne.x = [NSString stringWithFormat:@"%.0f",firstPoint.x];
            initialPointOne.y = [NSString stringWithFormat:@"%.0f",firstPoint.y];
            initialPointOne.index = @"1";

            CGPoint secondPoint = [sender locationOfTouch:0 inView:self.imageView];
            SSCoordinate *initialPointTwo = [[SSCoordinate alloc]init];
            initialPointTwo.x = [NSString stringWithFormat:@"%.0f",secondPoint.x];
            initialPointTwo.y = [NSString stringWithFormat:@"%.0f",secondPoint.y];
            initialPointTwo.index = @"2";

            gesture_.initialSet = [[NSArray alloc]initWithObjects:initialPointOne,initialPointTwo, nil]; 
        }
    } else if ([sender state] ==UIGestureRecognizerStateEnded ) {
        NSLog(@"dsfssdf %d",sender.numberOfTouches);

        if (sender.numberOfTouches == 2){

            SSCoordinate *firstPoint = [gesture_.initialSet objectAtIndex:0];

            CGPoint offset = [sender translationInView:self.imageView];

            // SSCoordinate *finalPoint = [[SSCoordinate alloc]init];
            finalPoint.x = [NSString stringWithFormat:@"%.0f",[firstPoint.x floatValue] + offset.x];
            finalPoint.y = [NSString stringWithFormat:@"%.0f",[firstPoint.y floatValue] + offset.y];

            SSCoordinate *secondPoint = [gesture_.initialSet objectAtIndex:1];

            SSCoordinate *finalPointTwo = [[SSCoordinate alloc]init];
            finalPointTwo.x = [NSString stringWithFormat:@"%.0f",[secondPoint.x floatValue] + offset.x];
            finalPointTwo.y = [NSString stringWithFormat:@"%.0f",[secondPoint.y floatValue] + offset.y];

            gesture_.finalSet = [[NSArray alloc]initWithObjects:finalPoint,finalPointTwo, nil];

            if ([gesture_.initialSet count] && [gesture_.finalSet count]) {
                [self handleGestureEventWebserviceForGesture:@"pan" withGestureObject:gesture_ andframeId:currentFrame_];
            }
        } 
    }                
}

它结束了,我相信这是预期的行为

触摸结束了,所以没有更多的手指在触摸它,对吗?在我看来,事情总是这样

如果您希望您的事件仅在用户用两个手指触摸时处理事件,最好的选项是在手势处理程序中设置它

诸如此类:

UIPanGestureRecognizer* p = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureHandler:)];
[p setMaximumNumberOfTouches:2];
[p setMinimumNumberOfTouches:2];
[yourView addGestureRecognizer:p];

我已经用target:self action:@selector(panGestureHandler:)]设置了UIPangestureRecognitzer*PangestureRecognitzer=[[UIPangestureRecognitzer alloc]initWithTarget:self action:];PangestureRecognitor.MaximumNumberOfTouchs=2;当toches ending时仍然无效它不会影响结尾中的触碰次数,但这将不需要测试触碰次数。