问题标签 [interactivepopgesture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
11571 浏览

ios - InteractivePopGestureRecognizer 导致应用程序冻结

在我的应用程序中,我有不同的控制器。当我将控制器 1 推到导航控制器并向后滑动时,一切正常。但是,如果我推导航控制器 1,然后进入控制器 1 推控制器 2 并尝试向后滑动,我会得到一个冻结的应用程序。如果通过后退按钮返回一切正常。

我怎样才能发现问题?

0 投票
2 回答
1002 浏览

ios - 将带有可见导航栏的视图控制器弹出到带有隐藏导航栏的视图控制器时,带有 interactivePopGestureRecognizer 的黑色区域

我有这个 ViewController #1,它是导航控制器的根视图控制器,并且有

ViewController #1 告诉它的导航控制器推送 ViewController #2,它有

当我想通过从屏幕左侧滑动从 ViewController #2 返回到 ViewController #1 时,我会看到我的视图作为我在此处附加的屏幕截图。这是在我将手指向右移动时捕捉到的,因此当我不断向右滑动时,右上角的黑色区域越来越小,直到 ViewController #1 覆盖所有屏幕区域。

我猜这是由两个视图控制器之间的隐藏/可见导航栏差异引起的。

我想知道是否有可能摆脱这个黑色区域。

在此处输入图像描述

0 投票
0 回答
327 浏览

ios7 - 如何更改 ios7 interactivePopGestureRecognizer 范围?

如您所知,ios7从左到右滑动弹出效果很酷,但只有当用户触摸非常接近屏幕边界时,才能触发此手势,有人有想法扩大范围吗?

0 投票
5 回答
7657 浏览

ios - 带有 interactivePopGestureRecognizer 的导航栏标题错误

开始使用时,我UINavigationBar在应用程序中的标题有一个奇怪的问题interactivePopGestureRecognizer。我制作了一个演示应用程序来展示这个错误。

设置:

  • rootViewController 是一个UINavigationController.
  • FirstViewController隐藏了导航栏,并且interactivePopGestureRecognizer.enabled = NO;
  • SecondThirdViewControllers 使导航栏可见并启用 popgesture。

漏洞:

使用 popgesture 从第二个视图返回到第一个视图时会出现该错误。如果将第二个视图拉到一半,然后返回第二个视图,导航标题将显示“第二个视图”(如预期的那样)。但是当您进入第三个视图时,标题不会变为“第三个视图”。然后单击第三个视图的后退按钮,导航栏会变得混乱。

请查看我的演示应用程序。任何解释为什么会发生此错误的帮助将不胜感激。谢谢!

0 投票
3 回答
2518 浏览

ios7 - _adjustContentOffsetIfNecessary - UIScrollView 自动滚动到顶部

在 iOS 7 上。我有导航控制器,并在堆栈顶部推送了一个新的 VC。

那个新的 VC 有一个 UIScrollView 填充 VC 的根视图并垂直滚动。如果我向下滚动一点,然后尝试使用“滑动返回”/“滑动弹出”手势,垂直滚动视图首先滚动到顶部,然后识别 interactivePopGesture,我可以拖动顶部的 VC左右堆叠。

为什么会这样?我希望防止我的滚动视图在识别“滑动返回”手势之前自动滚动到顶部。我该怎么做呢?

更新#1:

当我创建一个新的 xcode 项目时,我似乎无法重现这个错误,所以这肯定是我在原始项目中的错误。找到原因后会更新。

更新#2:

当 interactivePopGesture 被识别时,setContentOffset在我的垂直滚动视图上调用方法。在调试时,我看到它setContentOffset是从UIScrollViewInternal _adjustContentOffsetIfNecessary.

更新#3:

同样的问题发生在以下场景中:我在垂直 UIScrollView 中有 UITextFields。当按下某个 UITextField 时,会出现一个键盘。当我想以交互方式关闭键盘时(通过在键盘上拖动滚动视图),在我释放拖动后,会发生故障。UIScrollView 的内容偏移量暂时设置为零,然后设置回原始内容偏移量并继续动画。这个不需要的设置contentOffset也被调用UIScrollViewInternal _adjustContentOffsetIfNecessary

我继续用我自己的 UIScrollView 子类替换了这两种情况下的 UIScrollView。在那个子类中,我将私有方法重写-(void) _adjustContentOffsetIfNecessary为空的 void 方法。我的两个问题都解决了,我找不到任何负面后果。这不是一个解决方案,我不会使用这种方法,因为我不知道我到底做了什么。

0 投票
0 回答
286 浏览

ios - iPhone 6 Plus 横向 UINavigationController 的 interactivePopGestureRecognizer 错误

此问题仅出现在 iPhone 6 Plus 横向

如果您有 aUINavigationController并按了几个UIViewControllers,interactivePopGestureRecognizer则从屏幕上的任何位置窃取滑动。

仅当interactivePopGestureRecognizer用户从屏幕的左边缘滑动时才假设有效。

如果您正在显示UIScrollView,则这尤其成问题,您无法滑动滚动视图,因为interactivePopGestureRecognizer会窃取滑动。

我已向 Apple 提交了错误报告。还有其他想法吗?

编辑:

苹果似乎在某个时候修复了这个错误。

0 投票
0 回答
258 浏览

ios - iOS interactivePopGestureRecognizer 在 ViewController 被推送后启用自身

我有一个UINavigationController的子类,堆栈中最多有 4 个ViewController。让我们称它们为 firstVC ...fourthVC。我的 NavController 可以执行 VC 和 ios7/8 后退手势之间的自定义转换,应该根据当前位于堆栈顶部的 VC 禁用和启用。我已将根 VC (firstVC) 设置为 NavController 的委托,并尝试在委托的方法中启用/禁用返回手势

它就像一个魅力,除了一个小故障。我觉得一个简短的计划可以更好地解释情况:

FirstVC -[CustomTran]-> SecondVC -[push]-> ThirdVC -[push]-> FourthVC

FourthVC 是唯一具有-needsBackGestureEnabled选择器的选择器,但在从第二个到第三个后退手势转换后会自行启用。即使后退按钮被 CustomBarButtonItem 取代。我觉得执行默认的 -pushViewController动画会以某种方式启用后退手势。我试图在 -pushViewController 的 NavController 子类中明确禁用它,它没有改变任何东西。知道为什么会发生这种情况以及如何解决这个问题吗?

0 投票
0 回答
166 浏览

ios - 如何使用 interactivePopGestureRecognizer 知道 VC 是否完全弹出(滑动返回)

我正在使用一个自定义的左菜单控制器,它只能在它的顶级UIPanGestureRecognizer时打开。UINavigationController如果一些UIViewController被推入堆栈,我希望interactivePopGestureRecognizer按预期工作并在用户从左到右滑动而不是打开左菜单时弹出 VC。为了实现这一点,我将其分类UINavigationController如下:

一切工作正常,除了一个:当我在 detailViewController 并从左侧滑动时,VC 开始沿着我的手指移动的“POP”动画。如果我离开手势太快,detailViewController 不会真正弹出并回滚弹出动画。然而,这个动作触发了popViewControllerAnimated我上面的逻辑变得毫无用处。

总结:那么有没有办法了解是否过早释放滑动到后手势以真正弹出UINavigationController

0 投票
1 回答
1303 浏览

ios - 交互PopGesture时如何处理UITabBarController的子视图(如Flipboard)

我想要一个下划线来指示选择了哪个项目。每当点击该项目时,它就会滑动到任何其他项目。因此,我在自定义中添加了一个子视图UITabBarController并设置了动画。然后我用来hidesBottomBarWhenPushed在推送时隐藏标签栏。但是,下划线似乎没有与 custom 结合UITabBarController

如何处理子视图,使其即使在使用后退手势时也始终位于顶部?这个Flipboard应用程序捕获是我想要做的。

捕获

编辑:

hidesBottomBarWhenPushed隐藏标签栏但它的子视图(下划线视图)。如果我自己将其隐藏并显示在 中viewWillAppear,则下划线视图看起来不像在标签栏顶部。

捕获

0 投票
0 回答
105 浏览

ios - UISplitViewController 禁用 interactivePopGestureRecognizer

我的应用程序布局在这样的故事板中

在此处输入图像描述

问题是我无法为“Book Player View Controller”禁用 popGestureRecognizer(见图片底部)

这发生在我介绍了 splitview 设置之后。如果您使用的是 SplitViewController,是否有其他方法可以禁用此手势?

我使用 iOS 8 作为基础 sdk。