1

星評価コントロールを使用しています。

https://github.com/erndev/EDStarRating

私が必要とするのは、ユーザーがそのコントローラーを左にスワイプすると、メソッドが起動されることです。そこで、そのビューにスワイプ ジェスチャを追加しました。

UISwipeGestureRecognizer* gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHappened)];
gesture.direction  = UISwipeGestureRecognizerDirectionLeft;
gesture.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:gesture];

しかし、コントローラーのタッチレコグナイザーがそのスワイプジェスチャレコグナイザーをキャンセルしていると思います。

それで、私はどこが間違っていますか?私に何ができる?

4

3 に答える 3

1
[self.view addGestureRecognizer:gesture];
于 2013-01-24T01:42:42.613 に答える
0

iOS で提供されるすべてのジェスチャは、タッチおよびドラッグ イベントのみの単なるラッパーです。

I. ビューにタッチ イベント デリゲートが存在する場合、ジェスチャの識別は同じビューでは機能しません。

Ⅱ.ベースビューに子ビューがあり、ベースビューにタッチイベントデリゲートが存在し、子ビューにジェスチャーを実装したい場合は、それを実行できます。実装されたジェスチャーに、使用可能なタッチをキャンセルするように指示するだけです。ベースビューのため。これは、ジェスチャーでcancelTouchesInViewメソッドを使用して実現できます。2 番目のケースの場合は、ジェスチャの実装コードに以下の行を追加します。

gesture.cancelTouchedInView = YES;
于 2013-01-24T06:24:55.897 に答える
0

他のジェスチャ レコグナイザがある場合は、コントローラをスワイプ ジェスチャのデリゲートにしてYESgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

于 2013-01-24T04:55:37.160 に答える