我正在编写一个 UIScrollView 组件,用户与该组件的交互方式与在谷歌地图或 Apple 的 native map 应用程序等 map 应用程序中的交互方式相同。
我希望为用户提供与他习惯的相同的滚动和缩放体验 - 即滚动和缩放时的减速效果。
滚动部分很容易通过设置UIScrollView的decelerationRate属性来实现。
我的问题是 - 如何实现相同的放大缩小效果?
最佳答案
似乎没有现有的惯性缩放 API。这是自定义实现的基本思想。您可以调整系数。
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
NSLog(@"DidEndZooming %f", scale);
CGFloat speed = scrollView.pinchGestureRecognizer.velocity;
NSLog(@"Speed: %f", speed);
CGFloat targetScale = MIN(kMaximumZoomScale, MAX(1, scale + speed * 1/8));
NSLog(@"Target: %f", targetScale);
[scrollView setZoomScale:targetScale animated:YES];
}
关于ios - UIScrollView 在缩放时具有减速动画(与滚动相同的行为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887687/