有人可以建议在 UIScrollView 放大后使用哪个公式来计算内容偏移吗?让我们考虑以下示例:
我有一个内容 View 大小为 (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} 的新值是如何计算的。在这种情况下,用于计算内容偏移量的公式是否存在任何依赖性?
谢谢
最佳答案
这可能相关,也可能不相关,但请注意,160x230 是 iPhone 分辨率的一半,减去状态栏:320x460。尝试更改 UIScrollView 的框架或其 super View 的框架,并查看这对数字有何影响。
编辑:仔细想想,偏移量是 ScrollView 大小的一半是完全合理的,因为它将在两个方向上均匀扩展。因此,公式为: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)。
关于iphone - UIScrollView:缩放后内容偏移计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954757/