【问题标题】:How much contentOffset changes in UIScrollview for zooming?UIScrollview 中有多少 contentOffset 变化以进行缩放?
【发布时间】:2010-06-16 07:25:40
【问题描述】:

在 UIScrollview 中,当我滚动/拖动时,滚动视图 contentOffset 发生了变化,这表示我在滚动视图中滚动/拖动了多少。通过这种方式,我更新了scrollview的子视图进行滚动。

但是,当我缩放滚动视图(使用捏缩放)时,滚动视图的 contentOffsets 也发生了变化。我不明白 contentOffset 发生了多少变化,因为我无法将这些变化与 zoomScale 值联系起来。那么,无论如何要知道 contentOffset 的变化以进行缩放吗?

我的意图是在缩放时获取 contentOffset 更改的值以进行拖动(由于缩放内容偏移更改,我没有得到),以便我可以相应地更新滚动视图的子视图。

我被困在这里了。任何帮助将不胜感激。

谢谢

谢科特

【问题讨论】:

    标签: iphone uiscrollview uiscrollviewdelegate


    【解决方案1】:

    我设置了一个小测试项目,看起来 contentOffset 乘以zoomScale。因此,如果您想考虑这一点,只需在使用前将其除以zoomScale

    也许最好用一个小例子来说明: 我设置了一个滚动视图,并添加了一个足够大的视图,可以平移和缩放一点。对于那个视图,我添加了一个小的红色视图,无论如何我都希望它保持在相同的位置。 我正在观察 scrollView 的 contentOffset 属性,我是这样实现的:

    CGPoint contentOffset = self.scrollView.contentOffset;
    CGFloat zoomScale = self.scrollView.zoomScale;
    
    self.moveView.frame = CGRectMake((contentOffset.x+10)/zoomScale,
                                     (contentOffset.y+10)/zoomScale,
                                     10,
                                     10);
    

    这会使 moveView 在屏幕上保持相同的位置,仅在用户缩放时缩放它。

    我希望这能让事情有所澄清,但如果我能提供更多帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2012-07-20
      • 2021-12-08
      相关资源
      最近更新 更多