基于UIViewControllerAnimatedTransitioning自定义转场
2015-12-15 11:24
661 查看
从今年年初开始接触ios,也开始接触博客.当然一开始写一些没营养的东西,之后就没怎么写博客了,满满青涩的回忆.那么来说一下最近在豆瓣电台看到的一效果----滑动转场
上面就是一个大概的效果那么在ios怎么实现呢?做为一个刚来到ios的新手,叫我去搜api这是不可能的.那么就看一些大神博客.无意中就会找到自己想要的东西.那么首先建一个类继承NSObject的遵守UIViewControllerAnimatedTransitioning协议如下:
看到注释.我就不解析了.那么就直接看现实:
然后去主控制器实现:
上面方法是控制器由storyboard创建时初始化的,下面是纯代码或xib创建时初始化的
接下来控制器遵守UIViewControllerTransitioningDelegate协议,让要被present的控制器的
transitioningDelegate代理为主控制器:
在主控制器中实现代理方法:
那么以上就可以实现一个控制器被present出来了.
- (void)updateInteractiveTransition:(CGFloat)percentComplete;
更新百分比,一般通过手势识别的长度之类的来计算一个值,然后进行更新.
- (void)finishInteractiveTransition;
报告互交取消,返回切换前的状态
- (void)cancelInteractiveTransition;
报告互交完成,更新到切换后的状态
实现部分:
那个比值系数为什么是0.48,通过滑动手势推出来的能让手势和view连动最接近的一个数值.
在stateChange里面坐标变化会在如下图的2区域里面.至于为什么会变成这样的.我也不是很清楚.
具体怎么dismiss效果我就不多说了和present的差不多.
上面就是一个大概的效果那么在ios怎么实现呢?做为一个刚来到ios的新手,叫我去搜api这是不可能的.那么就看一些大神博客.无意中就会找到自己想要的东西.那么首先建一个类继承NSObject的遵守UIViewControllerAnimatedTransitioning协议如下:
看到注释.我就不解析了.那么就直接看现实:
然后去主控制器实现:
上面方法是控制器由storyboard创建时初始化的,下面是纯代码或xib创建时初始化的
接下来控制器遵守UIViewControllerTransitioningDelegate协议,让要被present的控制器的
transitioningDelegate代理为主控制器:
在主控制器中实现代理方法:
那么以上就可以实现一个控制器被present出来了.
接下来实现添加手势:
要在过程中添加任何东西.sdk预留了UIPercentDrivenInteractiveTransition这个类作为接口,那么继承这个类来实现其中的方法就可以了:- (void)updateInteractiveTransition:(CGFloat)percentComplete;
更新百分比,一般通过手势识别的长度之类的来计算一个值,然后进行更新.
- (void)finishInteractiveTransition;
报告互交取消,返回切换前的状态
- (void)cancelInteractiveTransition;
报告互交完成,更新到切换后的状态
实现部分:
那个比值系数为什么是0.48,通过滑动手势推出来的能让手势和view连动最接近的一个数值.
在stateChange里面坐标变化会在如下图的2区域里面.至于为什么会变成这样的.我也不是很清楚.
具体怎么dismiss效果我就不多说了和present的差不多.
相关文章推荐
- UIAlertController的使用
- [How to] UILocalNotification 的使用
- request.setCharacterEncoding() 和 response.setContentType()
- iOS开发break,continue,return的区别
- Android消息机制源码解析(四)——消息队列MessageQueue
- jsp中pageContext.request.contextPath解析
- Qt Quick简单教程
- continue的作用
- UI之导航栏属性、按钮及样式、属性传值
- UIButton上图片和文字的位置调整
- 关于去哪儿网的UI自动化测试脚本
- UISearchDisplayController和UISearchBar
- Uip在STM32平台移植之建立UDP链接
- MiniUI——表格分组
- 让UIView窄斜
- 187. Repeated DNA Sequences (String; Bit)
- pt-query-digest查询日志分析工具
- easyui combotree 异步加载节点 默认值 问题
- 记录错误:'command '/.../sdk/build-tools/23.0.1/aapt'' finished with non-zero exit value 1
- easyUI在可编辑的datagrid中计算两列的值