【发布时间】:2013-03-04 11:15:34
【问题描述】:
我有一个UIScrollView,里面有另一个UIScrollView。它们都水平滚动并具有pagingEnabled = YES。
假设我开始滚动内部滚动视图并到达最右边的边界。如果我继续在其中滚动,则外部 scrollView 开始移动。我需要避免这种情况。内视图应以橡皮筋效果跳跃,外视图应保持原位。
希望很清楚,但这里有一个草图:
我试过这样设置outerView.scrollEnabled = NO;:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
outerView.scrollEnabled = NO;
}
,它完全按照我的需要工作,如果只是在 innerView 中滚动。 OuterView 不再滚动。但是如果我想再次滚动outerView,我必须在某处将scrollEnabled 设置回YES。
我在这里尝试过:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
outerView.scrollEnabled = YES;
}
,但是我遇到了同样的问题:在到达 innerView 的最右侧边界后,outerView 滚动而不是 innerView 以橡皮筋效果跳转。
有什么解决问题的建议吗?
【问题讨论】:
-
在您的滚动视图委托方法中,它看起来不像您检查哪个 scrollviewViewBeginDragging 和哪个 scrollViewDidEndDecelerating。我不完全了解您的需求,但这显然是错误的。
-
尝试在每个滚动视图上设置标签然后检查
if(scrollview.tag == 1) -
@mkral:我对这些视图也有不同的代表,所以我不需要检查参数。
标签: ios ipad cocoa-touch uiscrollview uikit