UIScrollview中有多少contentOffset更改以进行缩放?

时间:2010-06-16 07:25:40

标签: iphone uiscrollview uiscrollviewdelegate

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

但是,当我缩放滚动视图(使用缩放缩放)时,滚动视图的contentOffsets也会更改。我不明白contentOffset已经改变了多少因为我无法将更改与zoomScale值相关联。那么,无论如何知道contentOffset中的变化是否有变焦?

我的目的是获取在缩放时拖动的contentOffset更改的值(由于缩放内容偏移更改,这不是我得到的),以便我可以相应地更新我的scrollview的子视图。

我被困在这里。任何帮助将非常感谢。

感谢

Shaikot

1 个答案:

答案 0 :(得分:5)

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

也许最好用一个小例子来说明: 我已经设置了一个scrollView,并添加了一个足够大的视图来平移和缩放。对于那种观点,我添加了一个小红色视图,无论如何都要保持在同一位置。 我正在观察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保持在屏幕上的相同位置,仅在用户缩放时缩放它。

我希望这可以解决一些问题,但如果我能做更多的事情来帮助我,请告诉我。