在UIScrollview中,当我滚动/拖动时,我在scrollview contentOffset中进行了更改,这表示我在滚动视图中滚动/拖动了多少。通过这种方式,我更新了scrollview的子视图以进行滚动。
但是,当我缩放滚动视图(使用缩放缩放)时,滚动视图的contentOffsets也会更改。我不明白contentOffset已经改变了多少因为我无法将更改与zoomScale值相关联。那么,无论如何知道contentOffset中的变化是否有变焦?
我的目的是获取在缩放时拖动的contentOffset更改的值(由于缩放内容偏移更改,这不是我得到的),以便我可以相应地更新我的scrollview的子视图。
我被困在这里。任何帮助将非常感谢。
感谢
Shaikot
答案 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保持在屏幕上的相同位置,仅在用户缩放时缩放它。
我希望这可以解决一些问题,但如果我能做更多的事情来帮助我,请告诉我。