画像ビューでパンジェスチャを実装しました。タッチ数を 2 に設定しました。
ユーザーがパンを開始すると、if ([sender state] == UIGestureRecognizerStateBegan) に入り、if (sender.numberOfTouches == 2) に入り、no:of touches を 2 として取得します。
しかし、ユーザーがパンを終了すると、([sender state] == UIGestureRecognizerStateEnded ) 入力されますが、if (sender.numberOfTouches == 2) に入力されず、no:of Touches は 0 として与えられます。
タッチが2本の指でいつ終了したかを確認するために何度もテストしましたが、終了の結果はゼロです。
誰でもこれで私を助けてくれませんか.親切にどこが間違っているのか教えてください.
この時点で完全に行き詰まりました。
- (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_];
}
}
}
}