UIScrollView检测捏拉变焦结束

Nic*_*ick 6 uiscrollview uiscrollviewdelegate ios

UIScrollView捏缩小超过其最小缩放限制并且即将动画回来时,我正试图得到通知,但我发现它非常困难.有没有办法可以delegate单独使用方法或者我是否需要覆盖UIScrollView's触摸处理?

Gar*_*man 10

使用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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


str*_*get 2

您可以使用 UIScrollView 的scrollViewDidZoom委托方法来检测它即将动画返回的时刻。当视图被挤压时,您会看到scrollView.zoomScale下方的下降。scrollView.minimumZoomScale然后,一旦用户松开手指,scrollViewDidZoom就会再次调用scrollView.zoomScale == scrollView.minimumZoomScale, but scrollView.zooming == NO

捕捉这一刻固然很好,但尝试做任何事情来抢先反弹到最小缩放比例动画似乎对我来说确实有奇怪的副作用。:(