0

画面全体でいつでも 3 本の指でスワイプ/パンできる iPad アプリを作成しています (キャンセル アクション)。と動きます。私はしたくない。

私の考えは、他のビューにタッチを転送するかどうかにかかわらず、アプリ全体の上に透明な UIView を配置することでした。hitTestで色々試してみたのですが、タッチの戻り数が正しくなくて時間がかかるのでよくわからなかったと思います...

あなたがそれで私を助けることができれば、どうもありがとう:)

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    if (event.type == UIEventTypeTouches) {
        if (event.allTouches.count >= 2) {
            return self;
        }
    }
    return [super hitTest:point withEvent:event];
}
4

1 に答える 1

0

を使用する必要があると思います

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

UIGestureRecognizer のデリゲートを使用して、同時に有効なジェスチャを定義します。

例えば:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    NSLog(@"gestRecogn: %@ otherGestRec: %@",[[gestureRecognizer class] className],[[otherGestureRecognizer class] className]);

    if ([[[gestureRecognizer class] className] isEqualToString:@"UIScrollViewPanGestureRecognizer"] && [[[otherGestureRecognizer class] className] isEqualToString:@"UILongPressGestureRecognizer"]) {
        return FALSE;
    }
    if ([[[gestureRecognizer class] className] isEqualToString:@"UILongPressGestureRecognizer"] && [[[otherGestureRecognizer class] className] isEqualToString:@"UIScrollViewPanGestureRecognizer"]) {
        return FALSE;
    }
    return TRUE;
}
于 2012-08-02T21:49:38.170 に答える