美文网首页
一行代码搞定全屏滑动返回手势

一行代码搞定全屏滑动返回手势

作者: Null先森的内存地址 | 来源:发表于2016-05-24 22:44 被阅读143次

开发过程中我们经常会遇到这种需求,给某个页面添加全屏的滑动返回。当然iOS7之后,系统有提供一个边缘滑动返回的手势。很明显无法完成需求。产品要的是全屏。

  • 思路1:
    既然UINavigationController有提供interactivePopGestureRecognizer手势。 UIGestureRecognizer采用的是target-action。这样我们可以找到手势的target和action。然后新建一个自己的手势实例,替换为系统手势的action实现就是了。
    id target = self.interactivePopGestureRecognizer.delegate
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)];
    pan.delegate = self;
    [self.view addGestureRecognizer:pan];
    self.interactivePopGestureRecognizer.enabled = NO;

  • 思路2:
    能不能不写那么多的代码?在研究interactivePopGestureRecognizer手势的过程中。通过运行时层层打印。

    • _recognizer:


      Paste_Image.png
    • _recognizer._settings:


      Paste_Image.png
    • _recognizer._settings._edgeSettings:


      Paste_Image.png

猜测_edgeSettings属性就是我们要找的设置返回手势响应范围的。

[self.interactivePopGestureRecognizer setValue:@([UIScreen mainScreen].bounds.size.width) forKeyPath:@"_recognizer._settings._edgeSettings._edgeRegionSize"];  

相关文章

  • 一行代码搞定全屏滑动返回手势

    开发过程中我们经常会遇到这种需求,给某个页面添加全屏的滑动返回。当然iOS7之后,系统有提供一个边缘滑动返回的手势...

  • iOS 全屏返回

    iOS 全屏返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS全屏返回处理

    8行代码搞定导航控制器全屏滑动返回效果

  • iOS 全屏手势返回

    BBGestureBack BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势...

  • iOS 右滑返回

    BBGestureBack BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势...

  • BBGestureBack 手势返回

    BBGestureBack BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势...

  • iOS 手势返回

    iOS 手势返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 右滑返回

    iOS 右滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 侧滑返回

    iOS 侧滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流App...

  • iOS 侧滑返回详解

    iOS 侧滑返回详解 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 这种手势主流A...

网友评论

      本文标题:一行代码搞定全屏滑动返回手势

      本文链接:https://www.haomeiwen.com/subject/eonzrttx.html