gpt4 book ai didi

ios - 如何禁用 UINavigationBar 上的向右滑动手势?

转载 作者:可可西里 更新时间:2023-11-01 03:57:01 24 4
gpt4 key购买 nike

当我在导航栏上从左向右滑动时,我的导航 Controller 会弹出一个 View Controller 。我已经看过 this question所以我知道我可以设置...

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

...但它只是禁用导航栏下方 View 上的滑动,而不是导航栏本身。

我目前的解决方案是手动找到手势并将其禁用。哪个有效,但不确定是否有更好的方法。导航栏似乎没有像 interactivePopGestureRecognizer 这样的属性。

// This is inside a `UINavigationController` subclass.
for (UISwipeGestureRecognizer *gr in self.navigationBar.gestureRecognizers) {
if ([gr isKindOfClass:[UISwipeGestureRecognizer class]] && gr.direction == UISwipeGestureRecognizerDirectionRight) {
gr.enabled = NO;
}
}

最佳答案

UIGestureRecognizerDelegate 有一个名为 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 的方法。如果您能够指出触摸的 View 是否是 UINavigationBar,只需让它返回“NO”

喜欢

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return (![[[touch view] class] isSubclassOfClass:[UIControl class]]); // UIControl is whatever as you like.
}

关于ios - 如何禁用 UINavigationBar 上的向右滑动手势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21850387/

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