我在VC中有UIScrollView(内部 - UICollectionView),它位于分页UIScrollView(外部)。两者都是水平的。当我从内到边缘(左侧或右侧)滚动时,它开始将触摸传递到外部滚动,外部滚动开始滚动。如何避免这种行为?我希望外部滚动条不会对内部滚动中的触摸做出反应。
您可以在外UIScrollView
下放置一个UIView
,并将其设置为userInteractionEnabled
以NO
我找到了如何做到这一点:子类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;
}
}
仅此而已