【问题标题】:UIScrollView: content offset calculation after zoomUIScrollView:缩放后的​​内容偏移量计算
【发布时间】:2011-04-26 16:01:09
【问题描述】:

有人可以建议在 UIScrollView 放大后使用哪个公式来计算内容偏移量吗?让我们考虑以下示例: 我有一个 UIScrollView,其内容视图的大小为 (1000, 1000),然后如果我以编程方式将 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} 的新值是如何计算的。在这种情况下,计算内容偏移量的公式是否存在依赖关系?

谢谢

【问题讨论】:

    标签: iphone uiscrollview zooming


    【解决方案1】:

    这可能相关也可能不相关,但请注意 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) 是否出来。

    【讨论】:

    • 非常感谢,大卫!这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2011-11-24
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2014-07-03
    • 1970-01-01
    相关资源
    最近更新 更多