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. エディタの終了/終了を検出する
- 5. キーボードをUIScrollViewで終了する
- 6. 検出ページ終了イベント
- 7. 終了したハングアップアプリケーションの検出
- 8. アプリの終了を検出する
- 9. 複数の非同期コールバックの終了を検出します
- 10. EXE COMサーバーからのクライアントプロセスの終了を検出します。
- 11. JVMのブートストラップフェーズの終了を検出します
- 12. .NET検出スレッドは外部コードから終了しますか?
- 13. scrollToRow関数の終了を検出します。
- 14. スイフト:ビデオの終了を検出
- 15. Postgres Async APIがクエリの終了を検出しました
- 16. UIScrollViewスクロールの検出
- 17. ブラウザの終了タブの検出
- 18. Delphi iOS - 終了ボタンのKeyDownの検出
- 19. C++ Windowsプログラム検出プログラム終了| GUIまたはコンソールなし
- 20. Chrome - ブラウザ終了時に検出する
- 21. iOS - アプリケーション終了時の検出
- 22. C++ディレクトリウォッチング - コピーの検出方法が終了しました。
- 23. ファイルのコピープロセスを検出する方法はC#で終了しました
- 24. UIScrollViewは底面のスワイプのみを検出します
- 25. 分析を完了する前に終了ストリームが検出されました
- 26. UIScrollViewでスクロールイベントを検出し、UITableViewまたは他のUIScrollViewに送信
- 27. Tensorflowオブジェクト検出開始前に終了します
- 28. node.jsのコンソール出力の終了を検出する
- 29. 剣道Grid2のデータバインディングの終了を検出する方法は?
- 30. どのようにWindow.ClientSizeChanged終了を検出できますか?
minimumZoomScale以外のzoomScale、 'if!scrollView.zooming && scrollView.zoomScale <0.6 {何かをする}' – osrl