基于UIViewControllerAnimatedTransitioning自定义转场

2 篇文章 0 订阅
1 篇文章 0 订阅

从今年年初开始接触ios,也开始接触博客.当然一开始写一些没营养的东西,之后就没怎么写博客了,满满青涩的回忆.那么来说一下最近在豆瓣电台看到的一效果----滑动转场


上面就是一个大概的效果那么在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的差不多.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值