UIScrollView缩放时contentOffset的变化机制探究
UIScrollView缩放时contentOffset的调整机制探究
我想搞清楚UIScrollView在缩放图片时,是如何调整contentOffset的。我们都知道缩放时会给视图应用CAAffineTransform,但UIScrollView会调整contentOffset,让图片在缩放过程中以捏合手势的中点为中心,实现定点放大的效果。
我目前有这些发现:
- 缩放后的contentOffset似乎和
zoomScale、contentSize以及UIPinchGestureRecognizer的位置(大概率是两指中点)相关,但我还没找到准确的参数函数关系。 - 我通过几组
zoomScale、手势位置和contentSize的值,推导出一个近似公式:location.x - scrollView.contentSize.width / scrollView.zoomScale,但双指平移时这个公式就失效了——因为位置参数会突变,这种情况下UIScrollView会停止识别捏合手势,转而优先响应平移手势。
有没有人清楚这个机制的具体原理?
内容的提问来源于stack exchange,提问作者tvrrp
相关产品推荐
相关产品推荐

