Swift全屏滑动返回的手势

YLFullscreenSlider Swift

给导航控制器添加一个全屏滑动返回的手势。类似QQ.微博的效果 ##如何使用? ###YLFullscreenSlider文件夹拖入你的项目 ###需要的导航栏继承YLFullscreenSliderController即可 ###你也可以拷贝下面代码到你的控制器实现 ##实现代码

   //1获取系统的pop手势
      guard let systemGes = interactivePopGestureRecognizer else { return }
      //2获取手势添加的view
      guard let gesView = systemGes.view else { return }
      //3.1获取target action

target和action不能够直接拿到。因此要使用运行时和KVO ```Swift //利用运行时机制查看对应属性名称 /* var count : UInt32 = 0 let ivars = class_copyIvarList(UIGestureRecognizer.self, &count)! for i in 0..<count { let ivar = ivars[Int(i)] let name = ivar_getName(ivar) //打印所有属性 print(String(cString: name!)) } */

在运行时中我们找到了target
[image](http://og3u5glro.bkt.clouddn.com/all.png?imageView2/2/w/308/h/210/interlace/1/q/100)

 ```Swift
        let targets = systemGes.value(forKey: "_targets") as? [NSObject]
        guard let targetObjc = targets?.first else { return }
        //        print(targetObjc)//打印拿到到的target字典

使用KVO取出需要的属性 image 拿到了pan的key

        //3.2取出target
        guard let target = targetObjc.value(forKey: "target") else { return }
 
        //3.3取出target
        let action = Selector(("handleNavigationTransition:"))

添加进去

        //4 创建自己的手势pan
        let panGes = UIPanGestureRecognizer()
        gesView.addGestureRecognizer(panGes)
        panGes.addTarget(target, action: action)

##效果 效果图

gitHubDemo下载

转载于:https://my.oschina.net/yuluZhang/blog/784707

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值