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上将类设置为自定义的类...
  • Hello_Hwc
  • Hello_Hwc
  • 2014年12月28日 10:16
  • 3268

push 左右翻转动画

原文 UIViewController *viewController = [[UIViewController alloc] init]; [UIView transitionWithView:...
  • lengshengren
  • lengshengren
  • 2015年12月24日 21:23
  • 1295

IOS翻转动画(可来回切换图片)

有个需求是让图片的两面显示不同的图片,点击图片时让这两张图片翻转切换,以前做这个效果的同事(已离职)专门下载了个框架,现在想想完全没必要,跟大家分享我自己写的Demo,10行代码就解决问题,具体实现代...
  • IOS_dashen
  • IOS_dashen
  • 2015年09月14日 11:40
  • 2074

猫猫学IOS(四十一)UI之核心动画 两行代码搞定3D转场(做android的哭死)

猫猫分享,必须精品原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 源码素材地址:效果:代码...
  • u013357243
  • u013357243
  • 2015年05月08日 18:04
  • 2499

在Storyboard中使用自定义的segue来实现动画过渡

我们知道segue共有三种类型:push、modal以及custom。如下图:  很明显,这三种类型的作用分别是:  使用导航栏压进新的视图控制器; 模态的加载试图控制器;...
  • itianyi
  • itianyi
  • 2014年10月31日 10:56
  • 3553

两个UIViewController之间的翻转可以用动画效果翻转(上下,左右)--跨界面之间的视图切换

UIViewController之间的切换除了UINavigationController里面的pushViewController和popViewController与UITalbarControl...
  • cxiao_11
  • cxiao_11
  • 2016年01月27日 14:45
  • 1929

iOS仿微信相册界面翻转过渡动画

仿微信相册界面的从图片界面到评论界面的翻转过渡动画效果
  • Cloudox_
  • Cloudox_
  • 2016年08月28日 18:35
  • 1679

iOS立方体翻转3D特效

// //  ViewController.m //  3D动态旋转动画 // //  Created by 杨继雷 on 15/12/9. //  Copyright © 2015年 杨继...
  • hc3862591
  • hc3862591
  • 2015年12月09日 12:18
  • 1676

自定义 View 3d翻转动画 android

由于最近有个一翻转图片(view)的需求,写了个简单的翻转动画不多说上代码: 自定义的animation需要重写的方法有:  1. public void initialize(int width, ...
  • nothingl3
  • nothingl3
  • 2015年09月13日 22:11
  • 1113

iOS 基于CATransition实现翻页、旋转等动画效果 —— HERO博客

iOS 基于CATransition实现翻页、旋转、淡化、推进、滑入滑出、立方体、吮吸、波纹等动画效果。...
  • hero_wqb
  • hero_wqb
  • 2016年06月01日 15:40
  • 1991
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 自定义翻转动画 (Custom Transitioning)
举报原因:
原因补充:

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