iOS7新特性--左侧滑屏的坑
来源:互联网 发布:u3d java 编辑:程序博客网 时间:2024/05/08 01:49
iOS7中新增了许多特性,其中有一项新特性--左侧滑屏(从屏幕左侧边缘向右侧滑动时会调用popViewController这个方法,和点击了后退按钮一样的效果),虽说这个新特性的确增加了新奇的用户体验,但是这其中也是有一个比较坑爹的BUG,就是左侧滑屏会影响按钮的点击事件。
如果你在靠近屏幕左侧一定距离内构造一个按钮的话,你就会发现按钮无法点击。因为按钮的点击事件被“左侧滑屏”这个系统机制截胡了,左侧滑屏的机制抢先响应了点击事件,导致按钮无法获取到点击事件。这里我找到两个解决方法。
方法一:关闭左侧滑屏机制。
重载viewWillAppear:animated方法,将左侧滑屏机制关闭,如下;
- (void) viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO]; if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; }}
然后在viewWillDisappear:animated方法中,将左侧滑屏恢复,
- (void)viewDidDisappear:(BOOL)animated{ [super viewDidDisappear:animated]; if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; }}
要注意的是关闭左侧滑屏机制的代码必须写在viewWillAppear:animated或者viewDidAppear:animated方法,因为在init方法和viewDidLoad方法时self.navigationController还没有被上一级的ViewController赋值,是nil。这时对navigationController的操作是无效的。
方法二:使用UITapGestureRecognizer代替按钮的点击事件
将按钮的target事件取消,新建UITapGestureRecognizer来处理按钮的响应事件的方法,然后将tapGesture添加到按钮上。
以上两种方法其实都不太好。方法一取消左侧滑屏功能,因为关闭了系统的原生功能,这是APPLE不推荐的。方法二会导致按钮没有点击按下的效果。不过目前我只找到这两种方法就只会先将就着用了。
0 0
- iOS7新特性--左侧滑屏的坑
- iOS7的新特性
- IOS7----之后的新特性
- iOS7、iOS8的新特性
- 汇总一下iOS6,iOS7的新特性
- iOS7开发的新特性之AirDrop
- ios7新特性
- iOS7 SDK新特性
- iOS7新特性
- IOS7新特性分享
- IOS7新特性
- ios7新特性
- IOS7新特性
- iOS7 SDK新特性
- ios7 新特性
- iOS7控件新特性
- iOS7新特性
- iOS7 SDK新特性
- 打印连续数组的最大和
- 设备驱动之共享
- Hadoop计算中的Shuffle过程
- iostat 深入浅出
- 使用github
- iOS7新特性--左侧滑屏的坑
- Linux VI 编辑常用命令详解
- POJ 3045 Cow Acrobats
- sed awk
- 自定义git
- win7 安装mysql 5.6
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- BZOJ 1012 最大数maxnumber
- Unity3D协程介绍 以及 使用