iOS的侧滑返回给用户带来了很好的用户体验,在日常的开发过程中也需要获取当前侧滑的状态,以便作出适当的反应。就拿最近做的一个功能来说吧:点击扫一扫按钮进入到二维码的扫描界面,之前做过的这个功能是在这个界面自定义了一个手势,将系统的侧滑手势屏蔽掉了(可能是为了规避某些bug),但是如今再次做到这个功能的时候,觉得这样做有些暴力,体验不是很好,在保留系统侧滑功能的同时,又能很好的实现扫描二维码的功能,是我对自己提出的要求,于是我开始了探索之路。最终发现,[self.navigationController.interactivePopGestureRecognizer addTarget:self action:@selector(handlerPopGestureRecognizer:)];
,可以满足我目前的需求。
- (void)handlerPopGestureRecognizer:(UIPanGestureRecognizer *)gesture{
// 判断侧滑的状态
if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
// 在开始侧滑/正在滑动的过程中,需要将扫描的功能关掉
}else {
// 结束侧滑将扫描的功能打开
// 如果侧滑将当前viewControllerpop后,在视图消失后将扫描的功能关掉
}
}
网友评论