【问题标题】:UIScrollView with decelerating animation while zooming (same behavior as in scroll)缩放时具有减速动画的 UIScrollView(与滚动中的行为相同)
【发布时间】:2014-11-12 13:03:24
【问题描述】:
我正在编写一个 UIScrollView 组件,用户与之交互的方式与他在地图应用程序(如谷歌地图或 Apple 的本地地图应用程序)中的交互方式相同。
我希望为用户提供与以往相同的滚动和缩放体验,即滚动和缩放时的减速效果。
通过设置 UIScrollView 的 decelerationRate 属性,滚动部分很容易实现。
我的问题是 - 我怎样才能为放大缩小实现相同的效果?
【问题讨论】:
标签:
ios
iphone
animation
uiscrollview
pinchzoom
【解决方案1】:
似乎没有用于惯性缩放的现有 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];
}