CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。

动画转场类型

类型字符串 效果说明 关键字 方向
fade 交叉淡化过渡 YES
push 新视图把旧视图推出去 YES
moveIn 新视图移到旧视图上面 YES
reveal 将旧视图移开,显示下面的新视图 YES
cube 立方体翻滚效果
oglFlip 上下左右翻转效果
suckEffect 收缩效果,如一块布被抽走 NO
rippleEffect 水滴效果 NO
pageCurl 向上翻页效果
pageUnCurl 向下翻页效果
cameraIrisHollowOpen 相机镜头打开效果 NO
cameraIrisHollowClose 相机镜头关闭效果 NO

使用UIView动画函数实现转场动画

单视图

+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
  • 参数说明:

    • duration:动画的持续时间
    • view:需要进行转场动画的视图
    • options:转场动画的类型
    • animations:将改变视图属性的代码放在这个block中
    • completion:动画结束后,会自动调用这个block

    双视图

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion;
  • 参数说明:

    • duration:动画的持续时间
    • options:转场动画的类型
    • animations:将改变视图属性的代码放在这个block中
    • completion:动画结束后,会自动调用这个block

代码演示

点击屏幕切换图片

  • 在控制器中添加一个UIImageView
  • 核心代码 ViewController.m
#import "ViewController.h"@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;@end@implementation ViewControllerstatic int i = 2;- (void)viewDidLoad {[super viewDidLoad];}-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{if (i == 4) {i = 1;}//更改图片name,用于不断切换图片,需要提前把图片命名为“1”、“2”、“3”NSString * strImage = [NSString stringWithFormat:@"%d",i];_imageView.image = [UIImage imageNamed:strImage];i++;//转场动画//初始化CATransition * anim = [CATransition animation];//设置动画转场类型,可以是`fade', `moveIn', `push' and `reveal'等等anim.type = @"cameraIrisHollowOpen";//动画执行周期anim.duration = 1;[_imageView.layer addAnimation:anim forKey:nil];/*-----------我是分界线-----------------*///还可以使用UIView的动画函数实现转场动画//单视图API
//    [UIView transitionWithView:_imageView duration:1 options:UIViewAnimationOptionTransitionCurlDown animations:^{//
//        NSLog(@"动画开始执行前走这里");
//
//
//    } completion:^(BOOL finished) {//
//        //动画执行完毕后的首位操作
//        NSLog(@"动画执行完毕走这里");
//
//    }];//双视图API
//    这是一个便捷的视图过渡 API,在动画过程中,首先将 fromView 从父视图中删除,然后将 toView 添加,就是做了一个替换操作。
//+ (void)transitionFromView:(UIView *)fromView
//toView:(UIView *)toView
//duration:(NSTimeInterval)duration
//options:(UIViewAnimationOptions)options
//completion:(void (^ __nullable)(BOOL finished))completion;}@end

八 iOS之 CATransition (转场动画)相关推荐

  1. iOS 关于自定义转场动画,以UITabBarController为例

    1.小记 关于自定义转场动画,只要你理清他的"套路",你就可以随心所欲地自定义了. 大体思路就是:遵守对应的代理协议,然后设置对应的代理,实现代理方法,这个代理方法要返回的值就是你 ...

  2. iOS视图控制器转场动画

    屏幕左边缘右滑返回,TabBar 滑动切换,你是否喜欢并十分依赖这两个操作,甚至觉得 App 不支持这类操作的话简直反人类?这两个操作在大屏时代极大提升了操作效率,其背后的技术便是今天的主题:视图控制 ...

  3. iOS动画之转场动画CATransition

    CATransition转场动画 提供层状态间动画转换的对象. 你可以通过创建和添加一个cattransitions对象到一个层的状态之间的过渡.默认转换是交叉渐隐,但是您可以从一组预定义转换指定不同 ...

  4. IOS开发之——动画-转场动画(98)

    一 概述 CATransition转场动画介绍 专场动画属性及过渡效果 示例(动画切换模拟转场动画) 二 CATransition专场动画介绍 nCATransition是CAAnimation的子类 ...

  5. iOS粒子特效、仿微信朋友圈、转场动画、抢红包动画等源码

    iOS精选源码 viewController 之间的转场动画 swift版 视频添加水印及粒子特效 小红点(消息推送提醒)完整解决方案 仿微信朋友圈–CircleOfFriendsDisplay 图片 ...

  6. 核心动画中的动画组和转场动画

    动画组 CAAnimationGroup 上篇博客http://blog.csdn.net/cocoarannie/article/details/10413301介绍了核心动画中的基本动画(CABa ...

  7. (0030) iOS 开发之跳转之转场动画

    demo: 1 iOS  ~ ViewController的Push,Pop和Present,Dismiss转场动画 // http://blog.csdn.net/zhangao0086/artic ...

  8. IOS开发教程第一季之02UI进阶day8合并IOS学习019--敲击、长按、轻扫、旋转,CALayer、锚点,CADisolayLink刷新,核心动画,关键帧动画,组动画,转场动画,画板案例

    1.创建并实现手势的基本步骤 点击手势 #import "ViewController.h"@interface ViewController () @property (weak ...

  9. iOS开发之核心转场动画

    iOS开发UI篇-核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一 ...

最新文章

  1. 3D机器人视觉在仓储物流和工业自动化领域的应用 | AI ProCon 2019
  2. python 类型之 set
  3. GNU C 中的零长数组
  4. vscode插件:REST Client发送http请求
  5. charles抓app包教程_charles关于手机APP抓包
  6. swift3.0 类字符串转类(字符串转ViewController)
  7. xshell连不上虚拟机linux的解决办法
  8. Android的MediaPlayer架构介绍
  9. elementUI中复选框checkbox的使用
  10. rad linux下安装mysql_Rad Hat Enterprise Linux 5.5上安装Oracle 11g R2
  11. 自己动手简单实现vbb的URL静态化
  12. 利用html表格制作个人简历
  13. 20189222 《网络攻防实践》安全工具、库的简介以及使用教程
  14. 用Global Mapper软件批处理将dwg转GeoPdf
  15. javascript 按下回车键触发input表单的切换(enter键代替tab键功能)
  16. 关于使用J-Flash直接烧录bin文件的方法
  17. HTML5期末大作业:网上鲜花网站设计——网上鲜花网页设计(5页)HTML+CSS+JavaScript web期末作业设计网页
  18. DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
  19. HRNet-v1模型,用于人体形态检测
  20. 图片太大怎么压缩变小?

热门文章

  1. 高雅有趣的Wolfram Mathematica导入篇:绘声绘色的程序语言
  2. Mac iOS 虚拟机VM 开开机后一段时间不用鼠标和键盘休眠的解决方法
  3. Spring源码学习(-)别怕,老外点中餐与AbstractBeanFactory.getBean的主流程差不多
  4. 直播系统---从客户端的视角看蘑菇街直播架构
  5. 前端之H5新特性Web Worker
  6. 商人宝:免费小程序商城系统平台运营有哪些技巧?
  7. Codeforces Round #811 (Div. 3) E Add Modulo 10
  8. ICIP 2009 Papers
  9. linux gcc编译常见问题,常见gcc编译警告整理以及解决方法 - 常见gcc编译警告整理以及解决方法...
  10. 有没什么便签App可以用闹钟提醒该做什么