问题标签 [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.
ios - InteractivePopGestureRecognizer 导致应用程序冻结
在我的应用程序中,我有不同的控制器。当我将控制器 1 推到导航控制器并向后滑动时,一切正常。但是,如果我推导航控制器 1,然后进入控制器 1 推控制器 2 并尝试向后滑动,我会得到一个冻结的应用程序。如果通过后退按钮返回一切正常。
我怎样才能发现问题?
ios - 将带有可见导航栏的视图控制器弹出到带有隐藏导航栏的视图控制器时,带有 interactivePopGestureRecognizer 的黑色区域
我有这个 ViewController #1,它是导航控制器的根视图控制器,并且有
ViewController #1 告诉它的导航控制器推送 ViewController #2,它有
当我想通过从屏幕左侧滑动从 ViewController #2 返回到 ViewController #1 时,我会看到我的视图作为我在此处附加的屏幕截图。这是在我将手指向右移动时捕捉到的,因此当我不断向右滑动时,右上角的黑色区域越来越小,直到 ViewController #1 覆盖所有屏幕区域。
我猜这是由两个视图控制器之间的隐藏/可见导航栏差异引起的。
我想知道是否有可能摆脱这个黑色区域。
ios7 - 如何更改 ios7 interactivePopGestureRecognizer 范围?
如您所知,ios7从左到右滑动弹出效果很酷,但只有当用户触摸非常接近屏幕边界时,才能触发此手势,有人有想法扩大范围吗?
ios - 带有 interactivePopGestureRecognizer 的导航栏标题错误
开始使用时,我UINavigationBar
在应用程序中的标题有一个奇怪的问题interactivePopGestureRecognizer
。我制作了一个演示应用程序来展示这个错误。
设置:
- rootViewController 是一个
UINavigationController
. FirstViewController
隐藏了导航栏,并且interactivePopGestureRecognizer.enabled = NO;
Second
和ThirdViewController
s 使导航栏可见并启用 popgesture。
漏洞:
使用 popgesture 从第二个视图返回到第一个视图时会出现该错误。如果将第二个视图拉到一半,然后返回第二个视图,导航标题将显示“第二个视图”(如预期的那样)。但是当您进入第三个视图时,标题不会变为“第三个视图”。然后单击第三个视图的后退按钮,导航栏会变得混乱。
请查看我的演示应用程序。任何解释为什么会发生此错误的帮助将不胜感激。谢谢!
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 方法。我的两个问题都解决了,我找不到任何负面后果。这不是一个解决方案,我不会使用这种方法,因为我不知道我到底做了什么。
ios - iPhone 6 Plus 横向 UINavigationController 的 interactivePopGestureRecognizer 错误
此问题仅出现在 iPhone 6 Plus 横向
如果您有 aUINavigationController
并按了几个UIViewController
s,interactivePopGestureRecognizer
则从屏幕上的任何位置窃取滑动。
仅当interactivePopGestureRecognizer
用户从屏幕的左边缘滑动时才假设有效。
如果您正在显示UIScrollView
,则这尤其成问题,您无法滑动滚动视图,因为interactivePopGestureRecognizer
会窃取滑动。
我已向 Apple 提交了错误报告。还有其他想法吗?
编辑:
苹果似乎在某个时候修复了这个错误。
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 子类中明确禁用它,但它没有改变任何东西。知道为什么会发生这种情况以及如何解决这个问题吗?
ios - 如何使用 interactivePopGestureRecognizer 知道 VC 是否完全弹出(滑动返回)
我正在使用一个自定义的左菜单控制器,它只能在它的顶级UIPanGestureRecognizer
时打开。UINavigationController
如果一些UIViewController
被推入堆栈,我希望interactivePopGestureRecognizer
按预期工作并在用户从左到右滑动而不是打开左菜单时弹出 VC。为了实现这一点,我将其分类UINavigationController
如下:
一切工作正常,除了一个:当我在 detailViewController 并从左侧滑动时,VC 开始沿着我的手指移动的“POP”动画。如果我离开手势太快,detailViewController 不会真正弹出并回滚弹出动画。然而,这个动作触发了popViewControllerAnimated
我上面的逻辑变得毫无用处。
总结:那么有没有办法了解是否过早释放滑动到后手势以真正弹出UINavigationController
?
ios - 交互PopGesture时如何处理UITabBarController的子视图(如Flipboard)
我想要一个下划线来指示选择了哪个项目。每当点击该项目时,它就会滑动到任何其他项目。因此,我在自定义中添加了一个子视图UITabBarController
并设置了动画。然后我用来hidesBottomBarWhenPushed
在推送时隐藏标签栏。但是,下划线似乎没有与 custom 结合UITabBarController
。
如何处理子视图,使其即使在使用后退手势时也始终位于顶部?这个Flipboard应用程序捕获是我想要做的。
编辑:
hidesBottomBarWhenPushed
隐藏标签栏但它的子视图(下划线视图)。如果我自己将其隐藏并显示在 中viewWillAppear
,则下划线视图看起来不像在标签栏顶部。