我正在编写一个用户与之交互的UIScrollView组件,就像他在Google地图或Apple的原生地图应用等地图应用中一样。
我希望为用户提供与以往相同的滚动和缩放体验 - 即滚动和缩放时的减速效果。
通过设置UIScrollView的decelerationRate属性,可以轻松实现滚动部分。
我的问题是 - 如何为放大缩小实现相同的效果?
答案 0 :(得分:2)
似乎没有用于惯性缩放的现有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];
}