iOS 自定义翻转动画 (Custom Transitioning)

原创 2017年01月03日 18:55:27

demo 链接

自定义翻转动画包括两部分:
1.UIViewControllerAnimatedTransitioning,动画协议
2.UIViewControllerInteractiveTransitioning,交互协议
动画协议,实现controller 之间 跳转的呈现形式,一般跳转和返回回是两个不同的动画,所以一般两个动画会同时存在。

- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext; // 动画需要执行的时间
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext; // 自定义的动画需要写在这里,使用completeTransition来结束跳转

交互协议,controller之间翻转动画的整个过程可以通过这个协议来自定义。

// 这三个函数决定了执行过程状态,
- (void)updateInteractiveTransition:(CGFloat)percentComplete; // 开始翻转
- (void)cancelInteractiveTransition; // 取消翻转
- (void)finishInteractiveTransition; // 翻转成功
通过UIViewControllerContextTransitioning上下文协议,使用viewControllerForKey来获取FormVC,ToVC,FromView,ToView。来对这些内容进行操作。
可以使用snapshotViewAfterScreenUpdates,来获取一个需要改变的view。


使用:
1.模态跳转,
vc.modalPresentationStyle = UIModalPresentationCustom; // 设置成自定义
vc.transitioningDelegate = self; //签代理
然后实现对应的代理方法既可以,包括跳转,返回,跳转的交互,返回的交互。

2.push
原理和模态是一样的,只不过跳转在当前controller里面实现,
返回在目标controller里面实现。

具体代码可以看:

demo链接
push并没有实现,push首先签UINavigationControllerDelegate,然后在对应页面实现对应的代理方法即可,翻转动画和翻转过程可以和模态跳转是相同的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

IOS 自定义界面切换动画-Custom Segue

实现方式就是继承UIStoryboardSegue类,然后重写Perform方法,然后在Storyboard上将类设置为自定义的类

Android Material Design-Defining Custom Animations(自定义动画)-(六)

转载请注明出处:http://blog.csdn.net/bbld_/article/details/40633327   用户跟你的app进行交互时,material design中的动画给予用户动...
  • BBLD_
  • BBLD_
  • 2014-10-31 00:00
  • 7627

iPhone/iOS中保存自定义对象(Custom Object/Custom Class)的数组(NSMutableArray/NSArray)到NSUserDefaults

【问题】 在折腾: 给Your Second iOS App:BirdWatching添加支持程序退出后,用户数据仍然保留 的过程中,遇到一个问题,需要将一个自定义对象的数组,保存到...
  • yuanya
  • yuanya
  • 2013-12-25 17:34
  • 2660

iOS-授之以鱼不如授之以渔=_=带你升入理解自定义转场动画

前言说到APP的转场动画,大家一定会想到push和pop来实现转场动画,这是苹果用了很多年提供的自带的方法,而且我相信大家在APP开发的时候,很多小伙伴都会选择自带的转场动画,很少去自定义,不论你是大...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)