• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift - 全屏pop手势

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

UINavigationController系统自带有侧滑手势,但是这个手势第一点只能边缘侧滑才可以有效,第二点当手动隐藏系统的导航时,这个手势就不能生效了
为了能到达到全屏pop的效果这里有2中解决方案:
1、通过runtime拿到系统的侧滑手势,并把这个手势添加到UINavigationController的全屏view上(这里主要介绍这一种方案)

        //利用运行时动态拿到系统的侧滑手势 action + target  手动创建一个全屏的pan手势,响应事件用系统的
        //拿到interactivePopGestureRecognizer这个对象里面全部的属性
//        var count:UInt32 = 0
//        let ivars = class_copyIvarList(UIGestureRecognizer.self, &count)!
//        for i in 0..<count {
//             //拿到ivar指针
//            let nameP = ivar_getName(ivars[Int(i)])
//            //根据指针找到对应的属性的字符串
//            let name = String(cString: nameP!)
//            print(name)
//        }
        guard  let targets = interactivePopGestureRecognizer?.value(forKey: "_targets") as?[AnyObject] else {
            return
        }
        //拿到 action=handleNavigationTransition:, target=<_UINavigationInteractiveTransition 0x7ff515c0dc80>
        
        let dict = targets[0]
        //拿到action
        let target = dict.value(forKey: "target") as Any
        //通过字典无法拿到action,这里通过Selector方法包装action
        let action = Selector(("handleNavigationTransition:"))

        //拿到target action 创建pan手势并添加到全屏view上
        let gesture = UIPanGestureRecognizer(target: target, action: action)
        view.addGestureRecognizer(gesture)

2、利用第三方FDFullscreenPopGesture达到全屏侧滑手势的效果

viewController.fd_interactivePopDisabled = YES;

demo下载地址:https://github.com/qqcc1388/fullPanGesture


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOS开发Swift篇(01) 变量&amp;常量&amp;元组发布时间:2022-07-13
下一篇:
swift4.0语法杂记发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap