设置:我有一个 UITableView ,每个 UITableViewCell 都有一个 UIScrollView 。我想要做的是让所有 UIScrollViews 一起滚动,这样当你滚动其中一个时,所有 UIScrollViews 似乎同时滚动。

我所做的是将 UITableView 子类化,以便它在其表格单元格中有一个包含所有 UIScrollViews 的数组。然后我将 TouchesBeganTouchesMovedTouchesCancelledTouchesEndedUITableView 转发到数组中的所有 UIScrollViews

这似乎不起作用。 UIScrollViews 不滚动!我设法让它工作的唯一方法是在滚动 View 上调用 setContentOffset : 方法。但是,这是一个非常糟糕的解决方案,因为它没有为您提供 UIScrollView 的滑动和减速功能。

关于为什么我的触摸方法没有进入 UIScrollViews 的任何想法?或者更好的方法来实现这一点?

最佳答案

好的,开始工作了。感谢瑞奇的提示!

要添加到 Ricki 的解决方案中的 2 件事,如果要避免无限循环,则必须检查是否设置了 scrollView 的跟踪或拖动属性。这将确保只有实际被拖动的 ScrollView 正在调用委托(delegate)。

- (void)scrollViewDidScroll:(UIScrollView *) theScrollView {
         if (theScrollView.dragging || theScrollView.tracking)
              [self.delegate scrolling:[theScrollView contentOffSet]];
}

此外,在委托(delegate)的滚动方法中,我将动画设置为 NO,这消除了初始滑动和其他滚动 View 更新之间的延迟。

关于iphone - 如何一起滚动一组 UIScrollViews?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2367153/

10-14 20:11
查看更多