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

时间:2010-10-17 19:01:03

标签: iphone uiscrollview zoom

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

contentSize before zoom = {1000, 1000}
contentOffset before zoom = {0, 0}
scale = 2.000000
contentSize after zoom = {2000, 2000}
contentOffset after zoom = {160, 230}

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

谢谢

1 个答案:

答案 0 :(得分: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)出来。