UIScrollView
は、ズームの最小限度を超えてピンチズームアウトされ、アニメーション表示されようとしているときに通知を受けようとしていますが、 delegate
メソッドだけでこれを行う方法はありますか?UIScrollView's
タッチ操作をオーバーライドする必要がありますか?UIScrollViewはピンチズームの終了を検出します
4
A
答えて
2
UIScrollViewのscrollViewDidZoom
デリゲートメソッドを使用して、アニメーションを再生しようとしている瞬間を検出できます。表示が狭められている間に、がscrollView.minimumZoomScale
以下になると表示されます。その後、ユーザーが指を離すと、すぐにscrollView.zoomScale == scrollView.minimumZoomScale
でscrollViewDidZoom
が呼び出されますが、scrollView.zooming == NO
となります。
この瞬間をキャプチャしても大丈夫ですが、バウンスバックのminimumZoomScaleアニメーションを先取りするために何かをしようとすると、本当に奇妙な副作用があるようです。 :(
0
私は
UIPinchGestureRecognizer
でそれをやった
。
-(void)viewDidLoad{
UIPinchGestureRecognizer *gestureRecognizer =
[[[UIPinchGestureRecognizer alloc] initWithTarget:self
action:@selector(pinched:)]
autorelease];
gestureRecognizer.delegate=self;
[self.scrollView addGestureRecognizer:gestureRecognizer];
//your code
}
-(void)pinched:(UIPinchGestureRecognizer*)gestureRecognizer{
if(gestureRecognizer.state==UIGestureRecognizerStateEnded){
//pinch ended
NSLog(@"scale: %f",scrollView.zoomScale);
}
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:
(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
8
使用scrollViewDidZoom:
とscrollView.zoomBouncing == YES
が。そして、ビューがバウンスされている方向を決定するためにzoomScale
を使用するかどうかを確認します。私はキャプチャしたい場合は
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
if (scrollView.zoomBouncing) {
if (scrollView.zoomScale == scrollView.maximumZoomScale) {
NSLog(@"Bouncing back from maximum zoom");
}
else
if (scrollView.zoomScale == scrollView.minimumZoomScale) {
NSLog(@"Bouncing back from minimum zoom");
}
}
}
関連する問題
- 1. Eclair(2.1)でピンチズームの開始と終了のジェスチャを検出することはできますか?
- 2. 終了したハングアップアプリケーションの検出
- 3. AS3ピンチズームとシングルフィンガードラッグ検出
- 4. EXE COMサーバーからのクライアントプロセスの終了を検出します。
- 5. JVMのブートストラップフェーズの終了を検出します
- 6. 複数の非同期コールバックの終了を検出します
- 7. .NET検出スレッドは外部コードから終了しますか?
- 8. Postgres Async APIがクエリの終了を検出しました
- 9. ブラウザの終了タブの検出
- 10. C++ Windowsプログラム検出プログラム終了| GUIまたはコンソールなし
- 11. Chrome - ブラウザ終了時に検出する
- 12. C++ディレクトリウォッチング - コピーの検出方法が終了しました。
- 13. iOS - アプリケーション終了時の検出
- 14. UIScrollViewスクロールの検出
- 15. 終了EOFが検出されない
- 16. UITableViewのドラッグ終了イベントを検出する方法は?
- 17. UIScrollViewは底面のスワイプのみを検出します
- 18. UIScrollViewでスクロールイベントを検出し、UITableViewまたは他のUIScrollViewに送信
- 19. UITextViewがスクロールを終了したときに検出する
- 20. AVFoundationカメラがフォーカスを終了したときに検出する
- 21. PYTHONプロセスが終了したときを検出する方法
- 22. Leaflet.js:地図のズームが終了したことを検出
- 23. iOS 3Dタッチピークが終了した(ポップなし)場合の検出
- 24. 重複する終了ページを使用する無限のUIScrollView
- 25. JSF - ユーザーがブラウザウィンドウを終了したときに検出します。
- 26. JavaScriptで最後に終了したCSSアニメーションを検出しますか?
- 27. UIScrollViewでのワンタッチ検出
- 28. アプリケーションが終了したときに検出する
- 29. Androidでのインストールの終了を検出する
- 30. Androidのアプリケーションの起動と終了を検出する方法
minimumZoomScale以外のzoomScale、 'if!scrollView.zooming && scrollView.zoomScale <0.6 {何かをする}' – osrl