ピンチアウトの発生を許可しながら、ピンチインをプログラムで防止する必要があるアプリがあります。ピンチインとピンチアウトのズームを区別する方法はありますか?
ありがとう、
ダグ
ピンチアウトの発生を許可しながら、ピンチインをプログラムで防止する必要があるアプリがあります。ピンチインとピンチアウトのズームを区別する方法はありますか?
ありがとう、
ダグ
次の 2 つのオプションがあります。
(1) を使用するUIScrollView
。を実装する必要がありますUIScrollViewDelegate
。ではscrollViewDidZoom:(UIScrollView *)scrollView
、現在の zoomScale 値を前の値と比較できます。増加した場合、ユーザーはズームインしています。それ以外の場合、ユーザーはズームアウトしています。その後、それに応じて何かを行うことができます。
(2) を使用しUIPinchGestureRecognizer
ます。この場合のロジックはほぼ同じです (同様のチェックを追加して、ピンチ スケールが上昇しているか下降しているかを確認します)。
これは、このベースコードです。これには、必要な正確な機能を実現するためにリファクタリングが必要になる場合があります
// 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
}
}
}
これが、要件に応じてピンチ イベントを処理するのに役立つことを願っています。