ios - 以编程方式设置 contentOffset 触发 scrollViewDidScroll

标签 ios uiscrollview uiscrollviewdelegate

我在一个页面上有几个 UIScrollView。您可以单独滚动它们或将它们锁定在一起并作为一个滚动。当它们被锁定时会出现问题。

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

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

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

实现说明.... 每个 UIScrollView 都是自定义 UIView 的一部分,它使用委托(delegate)模式回调到处理协调各种 contentOffset 的呈现 UIViewController 子类 值。

最佳答案

通过设置 UIScrollView 的边界,可以在不触发委托(delegate)回调 scrollViewDidScroll: 的情况下更改 UIScrollView 的内容偏移量原点设置为所需的内容偏移量。

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

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

相关文章:

ios - 未调用 UIScrollViewDelegate 方法

iOS UIPageViewController ScrollView 偏移量获取错误值

ios - 如何在滚动时使 UIImage 淡入淡出?

ios - 在 UITableViewCell 中自动布局两个标签?

ios - 苹果是否提供任何媒体传输控件以在我的应用程序中使用

ios - Storyboard中两个 View 之间的连续/转换,无需导航 Controller

ios - iOS 中的视频转换

swift - Swift 中 UITextView 文本的结尾

iphone - 如何将 UIScrollView 和文本字段放置在其中?

ios - setContentOffset 到 scrollView 中的 UIImage loaction