3

2回目のタッチを検出した後、スクロールを停止し、自分のピンチジェスチャでタッチを処理したいと思います。私はこれをスクロールビューで試しました:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if(event.allTouches.count > 2)self.panGestureRecognizer.enabled = NO;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if(event.allTouches.count > 2)self.panGestureRecognizer.enabled = YES;
}

しかし、それは機能しません。

これを試して:

scroll.panGestureRecognizer.maximumNumberOfTouches = 1;

しかし、何も

4

4 に答える 4

1

私は解決策を見つけます。UIScrollView を再定義し、以下を追加します。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

パン ジェスチャを無効化\有効化します。

if(pinch.state == UIGestureRecognizerStateBegan) scroll.panGestureRecognizer.enabled = NO; 
if(pinch.state == UIGestureRecognizerStateEnded) scroll.panGestureRecognizer.enabled = YES; 

ピンチジェスチャーが機能するようになりました。

于 2012-12-21T11:08:18.020 に答える
0

次のように使用して、スクロール ビューを無効にすることができます。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

       if ([touches count] == 2) {

       //Disable scrollview 
    }
 }
于 2012-12-21T10:44:43.337 に答える
0

delayContentTouchesのプロパティを NO に設定しますUIScrollView(デフォルトの YES ではなく)。これにより、タッチがsubviewsすぐにスクロール ビューに反映されます。

于 2012-12-21T11:20:16.363 に答える
0

少なくとも私のコードでは、UIPangestureRecognizer の enabled プロパティを設定しても機能しないことがわかりました。ただし、UIScrollView の scrollEnabled プロパティを設定するとうまくいきました。

scrollView.scrollEnabled = false;
scrollView.scrollEnabled = true;
于 2016-07-23T01:31:10.023 に答える