我有一个带有多个 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/