3

ユーザーが各親指から同時にパンできるようにしたいのですが、uigesturerecognizerでそれを検出する方法がわかりません。タップとパンを同時に検出できますので問題ありません。

2番目のパンが最初のパンをブロックするようです。

どんな助けでも大歓迎です。

4

1 に答える 1

2

次のように shouldReceiveTouch を定義して解決しました。

-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if (gestureRecognizer == singleTap) {
        return YES;
    }
    if (gestureRecognizer == pan1 && [touch locationInView:self].x > 160) {
        return YES;
    }
    if (gestureRecognizer == pan2 && [touch locationInView:self].x <= 160) {
        return YES;
    }
    return FALSE;
}

initWithFrame には次のコードがあります。

self.userInteractionEnabled = YES;
singleTap = [[UITapGestureRecognizer alloc]
                                     initWithTarget:self action:@selector(handleSingleTap:)];
singleTap.numberOfTapsRequired = 1;
[self addGestureRecognizer:singleTap];
[singleTap release];
NSLog(@"tap: %p", singleTap);

pan1 = [[UIPanGestureRecognizer alloc]
                               initWithTarget:self action:@selector(handlePan1:)];
[self addGestureRecognizer:pan1];
NSLog(@"pan1: %p", pan1);

pan2 = [[UIPanGestureRecognizer alloc]
                                initWithTarget:self action:@selector(handlePan2:)];
[self addGestureRecognizer:pan2];

for (UIGestureRecognizer *recognizer in self.gestureRecognizers) {
    recognizer.delegate = self;
}
NSLog(@"pan2: %p", pan2);
于 2012-09-15T03:33:03.457 に答える