我在页面上有一些UIScrollView。您可以独立滚动它们,也可以将它们锁定在一起然后一起滚动。当它们被锁定时,会发生问题。

我使用UIScrollViewDelegatescrollViewDidScroll:跟踪运动。我查询已更改的contentOffsetUIScrollView,然后通过将它们的contentOffset属性设置为匹配来将更改反射(reflect)到其他滚动 View 。

很好。。。除了我注意到很多额外的电话。以编程方式更改滚动 View 的contentOffset会触发要调用的委托(delegate)方法scrollViewDidScroll:。我尝试使用setContentOffset:animated:代替,但是我仍然在委托(delegate)上得到触发器。

如何以编程方式修改contentOffsets而不触发scrollViewDidScroll:

实现说明...。
每个UIScrollView是自定义UIView的一部分,该自定义UIViewController使用委托(delegate)模式来回调呈现的contentOffset子类,该子类负责协调各种ojit_code值。

最佳答案

可以通过将UIScrollView的边界(原始设置为所需的内容偏移量)设置,而无需触发委托(delegate)回调scrollViewDidScroll:来更改UIScrollView的内容偏移量。

CGRect scrollBounds = scrollView.bounds;
scrollBounds.origin = desiredContentOffset;
scrollView.bounds = scrollBounds;

关于ios - 设置contentOffset以编程方式触发scrollViewDidScroll,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9418311/

10-10 16:44