在含有WebView、ScrollView和TableView等的Controller中侧滑返回无效,解决侧滑返回,又遇到假死问题的解决办法
2016-06-24 11:08
621 查看
在iOS7之后苹果就添加了边缘侧滑返回这个功能,对于苹果软件的操作体验有很好的提升,但是这种操作在有些地方会被系统屏蔽掉,如在一个viewController中添加了scrollView或者tableView的时候。由于这些控件里面都有ScrollView,边缘侧滑返回的时候会首先触发ScrollView滚动而失效,导致侧滑手势失效,但是大部分时候我们并不需要ScrollView的横向滚动,所以这个时候有边缘侧滑返回就会很好的提升用户体验 要解决这个问题只需要在ViewDidload中添加以下代码: if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)])
{
self.navigationController.interactivePopGestureRecognizer.delegate = self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
} 此方法可以使在webView和ScrollView中的侧滑失效问题得以解决,恢复iOS系统的侧滑返回操作;优化操作体验;
但是回到navigationController的最顶层的Controller的时候再次侧滑之后,点击某个要push页面的地方,就会造成软件假死,怎么划都没用。
解决办法:
回到navigationController最上层页面的时候实现以下方法: -
(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = NO; } 即在最上层页面不侧滑返回的时候把的话返回手势关闭掉即可解决这个假死问题,
{
self.navigationController.interactivePopGestureRecognizer.delegate = self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
} 此方法可以使在webView和ScrollView中的侧滑失效问题得以解决,恢复iOS系统的侧滑返回操作;优化操作体验;
但是回到navigationController的最顶层的Controller的时候再次侧滑之后,点击某个要push页面的地方,就会造成软件假死,怎么划都没用。
解决办法:
回到navigationController最上层页面的时候实现以下方法: -
(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = NO; } 即在最上层页面不侧滑返回的时候把的话返回手势关闭掉即可解决这个假死问题,
相关文章推荐
- gvr-android-sdk 初探
- 【Unity】UGUI如何判断鼠标或者手指是否点击到UI上
- Android 获取屏幕的分辨率
- JS中的call、apply、bind方法
- Rxandroid+Retrofit学习记录
- iOS之Block基础
- Unity简单AI编写
- Android 数据库 GreenDao使用
- IOS系列-initWithFrame
- Android如何选择targetSDKVersion
- Unity贴图锯齿
- Xamarin Android项目提示SDK版本太老
- unity手游<少侠历险记>(4)背包系统
- Android之WebRTC介绍
- 几种获取Android手机唯一id的方法
- unity射击游戏:超萌射手(3)怪物生成和射击逻辑
- iOS开发中基础常用细节问题处理 - 1
- asp.net Application、 Session、Cookie、ViewState、Cache、Hidden 的区别
- unity射击游戏:超萌射手(2)射击特效和EasyButton使用
- Xamarin Android项目提示SDK版本太老