0

ピンチアウトの発生を許可しながら、ピンチインをプログラムで防止する必要があるアプリがあります。ピンチインとピンチアウトのズームを区別する方法はありますか?

ありがとう、
ダグ

4

2 に答える 2

1

次の 2 つのオプションがあります。

(1) を使用するUIScrollView。を実装する必要がありますUIScrollViewDelegate。ではscrollViewDidZoom:(UIScrollView *)scrollView、現在の zoomScale 値を前の値と比較できます。増加した場合、ユーザーはズームインしています。それ以外の場合、ユーザーはズームアウトしています。その後、それに応じて何かを行うことができます。

(2) を使用しUIPinchGestureRecognizerます。この場合のロジックはほぼ同じです (同様のチェックを追加して、ピンチ スケールが上昇しているか下降しているかを確認します)。

于 2013-07-03T19:17:31.630 に答える
1

これは、このベースコードです。これには、必要な正確な機能を実現するためにリファクタリングが必要になる場合があります

// Disable existing recognizer

for (UIGestureRecognizer* recognizer in [_scrollView gestureRecognizers]) {


    if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) {
        [recognizer setEnabled:NO];
    }
}

// Add our own

UIPinchGestureRecognizer* pinchRecognizer = 
  [[UIPinchGestureRecognizer alloc] initWithTarget:self 
                                            action:@selector(pinch:)];
[_scrollView addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];

- (void) pinch:(UIPinchGestureRecognizer*)recognizer { 

   if (lastScale < [recognizer scale]) {

   // pinch - out // write your own code here
   }
   else (lastScale > [recognizer scale]) {

   // pinch - in // write your own code here
   }
}

}

これが、要件に応じてピンチ イベントを処理するのに役立つことを願っています。

于 2013-07-03T19:17:46.787 に答える