在放大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}的新值是如何计算的。在这种情况下,是否存在用于计算内容偏移的公式的依赖性?
谢谢
答案 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)出来。