UINavigationController interactivePopGesture
iOS7 之后,引入交互手势,在NavigationController 的交互手势是 UIScreenEdgePanGestureRecognizer, 继承自 UIPanGestureRecognizer。在本次交互手势启用中,遇到的问题
- 自定义leftBarItem (返回按钮)不响应交互手势了。
- navigationController 的 RootViewController 上多滑动几次卡死了。
- UIViewController 上 有 ScrollView,TableView, UIWebView。
- 如何开启/关闭 interactivePopGesture?
- self.navigationController.interactivePopGesture.delegate = self;
- 代码如下
- - (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
- - (void)viewDidDisappear:(BOOL)animated {
- [self.myWebView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.na

本文探讨了在使用UINavigationController时,如何处理交互式pop手势的问题。当自定义leftBarItem导致返回手势失效,或者在RootViewController中遇到滑动卡死,以及在UIViewController中存在ScrollView、TableView、UIWebView时,如何开启和关闭interactivePopGesture。通过设置`interactivePopGestureRecognizer.delegate`,并在`viewDidDisappear`和`viewWillDisappear`中调整其enabled状态,以及利用`requireGestureRecognizerToFail`和`shouldRecognizeSimultaneouslyWithGestureRecognizer`方法,可以实现手势的正确交互。
最低0.47元/天 解锁文章
1186

被折叠的 条评论
为什么被折叠?



