objective-c - UIScrollViews全部同时滚动

标签 objective-c ios uiscrollview uiscrollviewdelegate

我有一个带有多个 ScrollView 的屏幕。如何实现这一目标: 当我点击其中一个并滑动时,它们都会开始滚动。我当然知道 UIScrollViewDelegate 方法,到目前为止我尝试做的是将 -setContentOffset:animated:scrollViewDidScroll 结合起来,它有效,但仅适用于一种情况 - 当我开始使用委托(delegate) ScrollView 滚动时。

如何动态更改委托(delegate)?取决于用户选择哪个 ScrollView ?

最佳答案

保留所有 UIScrollView 对象的数组。确保它们的所有委托(delegate)都指向同一个对象(或者如果不可能,则在 scrollViewDidScroll 上调用某种处理程序)。然后使用 setContentOffset 调整偏移量。您的想法是正确的,但您只想确保除当前 View (由委托(delegate)方法参数确定)之外的所有 ScrollView 都在滚动。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  for (UIScrollView *view in self.scrollViews) {
    if (scrollView != view) {
      [view setContentOffset:scrollView.contentOffset];
    }
  }
}

关于objective-c - UIScrollViews全部同时滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13152602/

相关文章:

ios - GLKit:为 Swift 格式化 Objective-C GLKit 参数

objective-c - 我不想重新加载 View Controller

ios - 使形状的位置固定在 iOS 相机预览中

iphone - 屏幕上的 CGRect 网格?

ios - 像在照片应用中一样向 AVPlayer 添加滚动播放控件

ios - 准备好使用带有延迟加载单元格的 iOS UIScrollView 来显示 "shelf"的书籍封面了吗?

objective-c - NSWindowController 将所有输入发送到主窗口进行处理?

objective-c - NSTextView 不会更新,除非我点击它,并且它不会聚焦。有任何想法吗?

ios - NSXML 使用 Swift 将损坏的字符串解析为数组

ios - 滚动 uiscrollview 时淡化 UITextView