美文网首页
Swift OC-全屏Pop手势

Swift OC-全屏Pop手势

作者: 哈哈西 | 来源:发表于2018-03-23 14:20 被阅读0次

巧用iOS运行时特性,将原本系统中的左侧侧滑pop事件,添加到view中.源码欢迎star和关注。


全局pop的gif图.gif

1、Swift版本

//在自定义的UINavigationController里面获取到系统侧滑的pop事件,然后将事件添加到view上面
    override func viewDidLoad() {
        super.viewDidLoad()
        //        var count : UInt32 = 0
        //        let ivas = class_copyIvarList(UIGestureRecognizer.self, &count)!
        //        for i in 0..<count {
        //            let nameP = ivar_getName(ivas[Int(i)])!
        //            let name = String.init(cString: nameP)
        //            print(name)
        //        }
        guard  let  targets = interactivePopGestureRecognizer?.value(forKey: "_targets") as? [NSObject] else { return }
        let targetObj = targets[0]
        print(targetObj)
        let target = targetObj.value(forKey: "target")
        let action = Selector(("handleNavigationTransition:"))
        let panGes = UIPanGestureRecognizer.init(target: target , action:action)
        view.addGestureRecognizer(panGes)
    }

2、OC版本


- (void)viewDidLoad {
    [super viewDidLoad];

    UInt32 count = 0;
    Ivar *ivars = class_copyIvarList(NSClassFromString(@"UIGestureRecognizer"), &count);
    for (int i = 0; i < count; i++){
        Ivar ivar = ivars[i];
        const char *ivarName = ivar_getName(ivar);
        NSString *ivarNameCode = [NSString stringWithUTF8String:ivarName];
        NSLog(@"%@",ivarNameCode);
    }
    free(ivars);

    NSArray *targets = [self.interactivePopGestureRecognizer valueForKey:@"_targets"];
    NSLog(@"%@",targets[0]);
    SEL sel = NSSelectorFromString(@"handleNavigationTransition:");
    UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:[targets[0] valueForKey:@"target"] action:sel];
    [self.view addGestureRecognizer:panGes];

}


相关文章

  • Swift OC-全屏Pop手势

    巧用iOS运行时特性,将原本系统中的左侧侧滑pop事件,添加到view中.源码欢迎star和关注。 1、Swift...

  • swift 全屏pop手势

  • Swift - 全屏添加pop手势

    现在众多APP中都有全屏pop手势实现这个目前只想到两种方式,如有其他方式请留言告知,相互学习 第一种 根据需求,...

  • iOS 全屏返回

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

  • 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...

网友评论

      本文标题:Swift OC-全屏Pop手势

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