我想要实现的目标:http: //youtu.be/SUWxVtpc0JA
我能做到的:http: //youtu.be/b1xH6Xsvxcg
当您从文本页面更改为菜单时,我正在尝试做与 Year Walk Companion 应用程序相同的垂直视差滚动效果。
通过使用 a上下移动(想象在嵌套数组之间滑动),我已经能够在UIScrollViews
仅水平移动的情况下实现此效果。UIPanGestureRecognizer
但是,当我UIScrollView
使用垂直滚动时,它会中断。
当我向下滚动时,UIScrollView
它会按照您的预期移动,向上移动时也是如此。但是,当我想要UIPanGestureRecognizer
进入并垂直移动UIScrollView
自身而不是内容时,问题就开始了。为此,到目前为止,我已经UIScrollView
对函数进行了子类化测试gestureRecognizerShouldBegin
:
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
UIPanGestureRecognizer* pan = (UIPanGestureRecognizer*)gestureRecognizer;
CGPoint panGestureTranslation = [pan translationInView:self];
if (self.contentOffset.y == 0 && panGestureTranslation.y > 0 ) {
return NO;
}
return YES;
}
它NO
在我UIScrollView
位于顶部时返回,并允许我的另一个 UIPanGesture 重新开始页面之间的视差滚动。
我的问题是,当我UIScrollView
滚动并到达顶部时,gestureRecognizerShouldBegin
不会调用该函数并强制我在允许UIPanGestureRecognizer
视差滚动之前释放触摸。
问题:如何停止触摸手柄UIScrollView
并让UIPanGestureRecognizer
触摸上升而不将手指从屏幕上松开?(就像在 Year Walk Companion 应用程序中一样)。