gpt4 book ai didi

ios - 无法一次从 UIScrollView 过渡到 UIPanGesture

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:56 24 4
gpt4 key购买 nike

我想要实现的目标:http://youtu.be/SUWxVtpc0JA

我能实现的目标:http://youtu.be/b1xH6Xsvxcg

我正在尝试实现与 Year Walk Companion 应用程序相同的垂直视差滚动效果,当您从文本页面切换到菜单时。

通过使用 UIPanGestureRecognizer 上下移动,我已经能够在仅水平移动的 UIScrollViews 上实现这种效果(想象一下在嵌套数组之间滑动) .但是,当我有一个垂直滚动的 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;
}

当我的 UIScrollView 位于顶部时,它返回 NO,并允许我的其他 UIPanGesture 重新开始页面之间的视差滚动。

我的问题是,当我的 UIScrollView 滚动并到达顶部时,函数 gestureRecognizerShouldBegin 将不会被调用并强制我在允许 UIPanGestureRecognizer 视差滚动。

问题:如何停止 UIScrollView 的触摸句柄,让 UIPanGestureRecognizer 在手指不离开屏幕的情况下向上移动? (就像在 Year Walk Companion 应用程序中一样)。

最佳答案

gestureRecognizerShouldBegin 未被调用,因为新的触摸“ session ”尚未开始。现有的还在进行中,手势表示不想开始。

您可以创建自己的手势子类,它保持可能并且仅在内容偏移量 < 0 时才启动。或者您可以使用 ScrollView 委托(delegate)方法作为您的输入,而根本不使用手势。

关于ios - 无法一次从 UIScrollView 过渡到 UIPanGesture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17672391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com