UIScrollView:缩放后的​​内容偏移计算

use*_*681 5 iphone zoom uiscrollview

在放大UIScrollView后,有人可以建议哪些公式用于内容偏移计算?让我们考虑以下示例:我有一个UIScrollView,内容视图大小(1000,1000),然后如果我以编程方式setZoomScale为2.0,在scrollViewDidEndZooming:withView:atScale方法I中将有以下内容:

contentSize before zoom = {1000, 1000}
contentOffset before zoom = {0, 0}
scale = 2.000000
contentSize after zoom = {2000, 2000}
contentOffset after zoom = {160, 230}
Run Code Online (Sandbox Code Playgroud)

我需要知道contentOffset {160,230}的新值是如何计算的.在这种情况下,是否存在用于计算内容偏移的公式的依赖性?

谢谢

Dav*_*ter 8

这可能相关也可能不相关,但请注意,160x230的分辨率是iPhone的一半,而不是状态栏:320x460.尝试更改UIScrollView的框架或其超级视图的框架,并查看它如何影响数字.

编辑:想想看,完全合理的是偏移量是滚动视图大小的一半,因为它将在两个方向上均匀扩展.所以,公式是:contentOffset = (scrollView.frame.size.width/2 * (scaleAfter - scaleBefore), scrollView.frame.size.height/2 * (scaleAfter - scaleBefore)).

因此,如果比例为4.0f,则偏移量为:(320/2 * (4-1), 460/2 * (4-1)) => (480, 690).尝试4的等级,看看是否(480,690)出来.