ScrollView には、いくつかの SubViews があります....
ScrollView には、定義済みのジェスチャ (Pan) とカスタム ジェスチャ (Pan) も含まれており、同時に認識されます...
SubViews には、カスタムの Pan Gesture も含まれています...
すべてが機能していますサブビューでパンジェスチャを除いて問題
ありません...サブビューでパンを行っているときに、そのスーパービューもタッチして不要なものを処理しています...
サブビューでパンが行われている場合、スーパービューはそれらを認識しないでください.. .
SubView ジェスチャをその SuperView に渡すのをブロックするにはどうすればよいですか?
6193 次
2 に答える
9
スーパービューがジェスチャに応答しないようにブロックするには、タッチポイントの下にサブビューがある場合、次のように実行できます。
UIGestureDelegateの次のメソッドを実装します
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
なので
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return (touch.view == superView);
}
このデリゲートをsuperViewに割り当てられたgestureRecognizerに設定します。
これで必要なことができるといいのですが。
于 2013-03-16T10:10:55.740 に答える
0
基本的に、サブビューをクリックすると、スーパービューがサブビューと重なるため、スーパービューのジェスチャーが認識されません。
.h にデリゲートを追加して、tapGestures に渡し、次のように条件を指定します
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if([gestureRecognizer.view isKindOfClass:[superView class]])
return NO;
else
return YES;
}
于 2013-03-16T10:04:39.213 に答える