[iOS]动画属性


一 、基础动画

1、基础动画的属性详解

  注:Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程.

2、基础动画的keyPath

  transform.rotation.x 围绕x轴翻转 参数:角度 angle2Radian(4) 

  transform.rotation.y 围绕y轴翻转 参数:同上 

  transform.rotation.z 围绕z轴翻转 参数:同上 

  transform.rotation 默认围绕z轴 

  transform.scale.x x方向缩放 参数:缩放比例 1.5 

  transform.scale.y y方向缩放 参数:同上 

  transform.scale.z z方向缩放 参数:同上 

  transform.scale 所有方向缩放 参数:同上 

  transform.translation.x x方向移动 参数:x轴上的坐标 100 

  transform.translation.y x方向移动 参数:y轴上的坐标 

  transform.translation.z x方向移动 参数:z轴上的坐标 

  transform.translation 移动 参数:移动到的点 (100,100) 

  opacity 透明度 参数:透明度 0.5 

  backgroundColor 背景颜色 参数:颜色 (id)[[UIColor redColor] CGColor] 

  cornerRadius 圆角 参数:圆角半径 5 

  borderWidth 边框宽度 参数:边框宽度 5 

  bounds 大小 参数:CGRect 

  contents 内容 参数:CGImage 

  contentsRect 可视内容 参数:CGRect 值是0~1之间的小数 

  hidden 是否隐藏 

  position 水平方向移动

  shadowColor 

  shadowOffset 

  shadowOpacity 

  shadowRadius

二 、转场动画

1、转场动画的type


[iOS]动画属性_第1张图片

2、转场动画的subType


[iOS]动画属性_第2张图片


3、转场动画的timingFunction

 kCAMediaTimingFunctionLinear            线性,即匀速

 kCAMediaTimingFunctionEaseIn            先慢后快

kCAMediaTimingFunctionEaseOut           先快后慢

kCAMediaTimingFunctionEaseInEaseOut     先慢后快再慢

 kCAMediaTimingFunctionDefault           实际效果是动画中间比较快.

三 iOS动画总结

核心动画:

核心动画:Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能

注意:Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。

 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。

CAAnimation继承结构

[iOS]动画属性_第3张图片

CAAnimation:是所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类

CAPropertyAnimation:是CAAnimation的子类,也是个抽象类,要想创建动画对象,应该使用它的两个子类CABasicAnimation CAKeyframeAnimation

CABasicAnimation:基本动画,是CAPropertyAnimation的子类

CAKeyframeAnimation:关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值

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

CAAnimationGroup:动画组,是CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行


UIView动画

iOS开发UI篇—核心动画(UIView封装动画) - 文顶顶 - 博客园

UIView封装的动画与CALayer动画的对比

使用UIView和CALayer都能实现动画效果,但是在真实的开发中,一般还是主要使用UIView封装的动画,而很少使用CALayer的动画。

CALayer核心动画与UIView动画的区别:UIView封装的动画执行完毕之后不会反弹。即如果是通过CALayer核心动画改变layer的位置状态,表面上看虽然已经改变了,但是实际上它的位置是没有改变的。

你可能感兴趣的:([iOS]动画属性)