文档章节

Swift全屏滑动返回的手势

Raindew
 Raindew
发布于 2016/11/09 12:48
字数 354
阅读 71
收藏 2

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下载

© 著作权归作者所有

共有 人打赏支持
Raindew
粉丝 3
博文 16
码字总数 6727
作品 0
南京
iOS工程师
私信 提问
全屏手势返回插件 - BBGestureBack

BBGestureBack Full screen return gesture(全屏手势返回 滑动返回 pop 动画效果) iOS 侧滑返回 BBGestureBack iOS 全屏手势返回 滑动返回 pop 动画效果 现在市场上的主流app都有用到各种侧...

Bonway
2018/05/30
0
0
iOS 手势识别的工作原理及简单应用

我们的项目中, 因为有视频播放, 需要用到全屏手势返回(使用AVPlayer播放视频时, 如果用系统手势返回, 会出现播放卡顿的问题), 所以我参考了这本书手势章节介绍的内容, 写了一个全屏返回手势的...

changsanjiang
2017/11/21
0
0
iOS 全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突

一、前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewController.view上有一个UIScrollView,UIScrollView上有UISlider。俺直接在之前的示例Demo上演示,简书地址:iOS 自定...

且行且珍惜_iOS
2018/08/17
0
0
Swift 视频播放器 --VGPlayer

VGPlayer VGPlayer是一个对 AVPlayer 封装提供播放功能,displayView 为播放器画面绘制。 主要是使用了以下几个类: AVURLAsset是 AVAsset的子类,用来本地或者网络视频地址的初始化网络请求...

Vein_
2017/06/19
80
0
iOS开发tips-UINavigationBar的切换

概述 在iOS系统中,如果控制器是以push方式进行管理的话,那么事实上多个控制器是共享的同一个导航栏。当然iOS系统的设计无可厚非,但是国内的应用经常会遇到很多个性的设计,就比如说A pus...

jianxin160
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
8
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
3
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部