1

私は自分の意見で複雑な問題に直面しています。できるだけ明確かつ具体的にしようとします。不明な点があれば、そう言ってください。

大きなビュー (ContentView) を含む ScrollView があります。この ScrollView を 2 本 (またはそれ以上) の指でスワイプしてスクロールしたい。contentView には、barView というカスタム ビューのインスタンスがいくつかあります。これらのバービューは uisliders に似ていますが、いくつかのカスタマイズがあります。これらのバービューをスライドできるようにするために、「touchesMoved」メソッドを使用してタッチを追跡します。しかし、マルチタッチスワイプを使用してビューをスクロールしたいときはいつでも、バービューのメソッドもトリガーします。マルチタッチスワイプによってバービューが操作されないようにするにはどうすればよいですか?

よろしくお願いします!

4

1 に答える 1

0

PanGestureRecognizers を使用して、barViews のタッチを追跡できます。それらを設定するときは、次のように設定します。

[panGestureRecognzer requireGestureRecognizerToFail:scrollViewSwipeGestureRecognizer]

これにより、スクロールビューでのスワイプジェスチャが失敗した場合にのみ、バービューのgestureRecognizersがトリガーできるようになります。

あるいは、scrollView が 2 本の指を使用したときにのみスクロールする場合は、barView の touchesMoved メソッドに次を追加できます。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ([touches count] > 1)
        return;
    /...
}
于 2012-10-24T13:36:03.070 に答える