ピンチが最小ズーム制限を超えてズームアウトされ、元に戻ろうとしているときに通知を受けようとしていますUIScrollView
が、非常に難しいと感じています. メソッドだけでこれを行う方法はありますか、それともタッチ処理delegate
をオーバーライドする必要がありますか?UIScrollView's
6744 次
4 に答える
11
を使用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");
}
}
}
于 2013-12-16T13:45:49.980 に答える
2
UIScrollView のscrollViewDidZoom
デリゲート メソッドを使用して、アニメーション化しようとしている瞬間を検出できます。ビューがピンチされている間、scrollView.zoomScale
ドロップダウンが表示されます。scrollView.minimumZoomScale
その後、ユーザーが指を離すとすぐに、 , butscrollViewDidZoom
でもう一度呼び出されます。scrollView.zoomScale == scrollView.minimumZoomScale
scrollView.zooming == NO
この瞬間をキャプチャすることは問題ありませんが、跳ね返って最小のZoomScaleアニメーションを回避するために何かをしようとすると、私にとって本当に奇妙な副作用があるようです. :(
于 2011-03-04T04:17:12.917 に答える
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;
}
于 2013-01-12T14:10:06.613 に答える