iOS 动画

来源:互联网 发布:知乎 装修 编辑:程序博客网 时间:2024/06/05 20:33

知识点:

1CATransition

2CABasicAnimation

3CAKeyframeAnimation

======================================================


一、CATransition转场动画


1)type 设置动画类型

2)subtype 辅助动画类型(上左下右)

kCATransitionFromTop

kCATransitionFromLeft

kCATransitionFromBottom

kCATransitionFromRight

3)duration持续时间

4)addAnimation: forKey: viewlayer图层上添加动画

5)removeAnimationForKey: viewlayer层上移除动画


CATransition中动画type的值:


官方提供的四种动画效果

fade,                  //淡入淡出

push,                      //推挤

reveal,                    //揭开

moveIn,                    //覆盖


私有动画是在UIView的基础上,设置CATransitiontype

cube,                      //立方体

suckEffect,                //吮吸

oglFlip,                   //翻转

rippleEffect,              //波纹

pageCurl,                  //翻页

pageUnCurl,                //反翻页

cameraIrisHollowOpen,      //开镜头

cameraIrisHollowClose,     //关镜头


下面这个几个用在UIViewsetAnimationTransition方法中

UIViewAnimationTransitionCurlDown,//下翻页

UIViewAnimationTransitionCurlUp,  //上翻页

UIViewAnimationTransitionFlipFromLeft//左翻转

UIViewAnimationTransitionFlipFromRight,//右翻转


======================================================


二、CABasicAnimation就是CAKeyframeAnimation的简单动画,CABasicAnimation只有起始位置和结束位置,中间会自动创建补帧动画;而CAKeyframeAnimation可以创建中间过程,使动画多样化


======================================================


三、CAKeyframeAnimation关键帧动画类


1、常用的属性和方法


1)创建关键帧动画

- (id)animationWithKeyPath:

keyPath常用的有:

position 轨迹(位移)

transform 旋转

scale 缩放


2values 关键点坐标

3path 设置路径


4duration 持续时间


5autoreverses 往返执行,按照原来的路径反向执行


6repeatCount 重复次数


7removedOnCompletion动画完成后是否移除当前动画结束后的位置,

需要配合fillMode属性的kCAFillModeForwards才生效


8timingFunction 动画的运动轨迹

5种轨迹类型

kCAMediaTimingFunctionLinear         线性,即匀速

kCAMediaTimingFunctionEaseIn         先慢后快

kCAMediaTimingFunctionEaseOut        先快后慢

kCAMediaTimingFunctionEaseInEaseOut  先慢后快再慢

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


9calculationMode

控制关键帧动画时间的另一种方法。我们通过将其设置为kCAAnimationPaced,让Core Animation向被驱动的对象施加一个恒定速度,不管路径的各个线段有多长。


10)将动画添加到layer图层上

addAnimation: forKey:




0 0
原创粉丝点击