【问题标题】:UIScrollViews all scroll in the same timeUIScrollViews 都同时滚动
【发布时间】:2012-10-20 14:17:58
【问题描述】:

我有一个带有几个滚动视图的屏幕。如何实现这一点: 当我点击一个并滑动时,它们都开始滚动。我当然知道UIScrollViewDelegate 方法,到目前为止我尝试做的是将-setContentOffset:animated:scrollViewDidScroll 结合起来,但它只适用于一种情况——当我开始使用委托滚动视图滚动时。

如何动态更改委托?取决于用户选择哪个滚动视图?

【问题讨论】:

    标签: objective-c ios uiscrollview uiscrollviewdelegate


    【解决方案1】:

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

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

    【讨论】:

    • 我不明白。那是我的问题。例如,当我在数组中有 5 个滚动视图并且我将委托设置为第一个时,只有在我开始滚动第一个时才会滚动。我在这里要做的是开始滚动所有滚动视图,无论哪个用户触摸。
    • 您想将所有UIScrollViewdelegates 设置为同一个对象,这可能是一个视图控制器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多