分页 UIScrollView 内的 UIScrollView
Posted
技术标签:
【中文标题】分页 UIScrollView 内的 UIScrollView【英文标题】:UIScrollView inside paged UIScrollView 【发布时间】:2013-10-29 11:06:28 【问题描述】:我在分页 UIScrollView(外部)中的 VC 中有 UIScrollView(内部 - UICollectionView 老实说)。两者都是水平的。 当我从内滚动到边缘(左侧或右侧)时,它开始将触摸传递给外滚动并且外滚动开始滚动。 如何避免这种行为?我希望外滚动不对内滚动中的触摸做出反应。
【问题讨论】:
【参考方案1】:你可以在外层UIScrollView
下面放一个UIView
,设置为userInteractionEnabled
到NO
【讨论】:
如何防止将拖动事件从内部滚动传递到外部滚动? 如果设置为 userInteractionEnabled = NO;那么它不会通过拖动事件 问题是我直接触摸内部滚动视图,当我拖动(我没有释放手指)到它的内容端时,它开始将触摸传递到外部滚动视图。【参考方案2】:我发现了如何做到这一点: 子类 UIScrollView - 这将是你的外部滚动视图 现在方法:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
UIView *touchedView = gestureRecognizer.view;
CGPoint loc = [gestureRecognizer locationInView:touchedView];
UIView* subview = [touchedView hitTest:loc withEvent:nil];
if([[subview nextResponder] isKindOfClass:[MyInnerScrollVC class]])
return NO;
else
return YES;
就是这样
【讨论】:
以上是关于分页 UIScrollView 内的 UIScrollView的主要内容,如果未能解决你的问题,请参考以下文章
UiScrollView 高度不正确(没有 AutoConstraint)
缩放和重绘 UIScrollView 内容后设置 contentOffset