iOS 中牛X的动画(一. CABasicAnimation篇)

2016-07-22  本文已影响408人  Lizzzzzzhen

Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。

Core Animation 组织结构如下:

主要使用这四部分动画:

使用步骤:

1.添加 QuartzCore.framework

2.引入头文件#import <QuartzCore/QuartzCore.h>

1. CABasicAnimation

通过设定起始点, 终点, 时间, 动画会沿着设定的点进行移动, 可看做是特殊的CAKeyframeAnimation

说明这个动画对象要对CALayer的position属性执行动画

//缩放 (transform.scale)
//平移 (position)
//旋转 (transform.rotation)

设置动画效果为缩放:
缩放效果可以分别对应X , Y , Z 轴进行设置
transform.scale.x,
transform.scale.y,
transform.scale.z.

旋转和缩放效果类似, 对应X , Y , Z 轴进行设置:
transform.rotation.x,
transform.rotation.y,
transform.rotation.z.

CABasicAnimation*basicAnima = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];
动画持续1.5s
basicAnima.duration=1.5;

放大
basicAnima.fromValue=@1; basicAnima.toValue=@2;

设置动画的代理
basicAnima.delegate=self;

自动返回
basicAnima.autoreverses=YES;

重复次数
basicAnima.repeatCount=10;

保持动画执行后的状态
basicAnima.removedOnCompletion=NO; basicAnima.fillMode=kCAFillModeForwards;

添加动画对象到图层上
[view1.layer addAnimation:basicAnima forKey:@"translate"];

代理方法

动画开始时
- (void)animationDidStart:(CAAnimation*)anim{ NSLog(@"动画开始了");}

动画结束时
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{ NSLog(@"动画结束了"); }

今天小编就写到这里了, 如果发现我写的地方有问题, 希望能给我留言,我会及时进行修改, 大家一起进步, 剩下的三组动画, 最近也会做出更新, 希望能帮助到大家.

上一篇下一篇

猜你喜欢

热点阅读