美文网首页
iOS核心动画运用思路

iOS核心动画运用思路

作者: 大神风格化X | 来源:发表于2018-07-31 16:21 被阅读13次

iOS应用中用到核心动画的场景还是蛮常见的,上次我聊过UIView动画的运用注意事项。这一次该聊聊核心动画了。哈哈

首先谈两者的区别,这两者最大的区别就是在于UIview动画是作用于view层的,而核心动画是作用于layer层,view层上的动画是真动画,因为frame发生实质性改变(位置是真的改变)。而核心动画是假动画,他的frame没发生实质性改变,改变的是layer层面上的动画效果。核心动画运用场景很多,因为它能实现位移效果、旋转效果、放大缩小效果等。。

那么如果在写的时候,能把每一步都写好呢?

那么现在我给大家聊聊写核心的动画一个主导思路吧。。

1.首先,我们要调用系统里面包含核心动画那块的库-就是“transform.translation”这个库

#import <QuartzCore/QuartzCore.h>

2.指定layer对应要实现的属性键值作为动画注册依据

例如:

CABasicAnimation*animation =

[CABasicAnimationanimationWithKeyPath:@"position"];

animation.delegate = self;//如果有需要实现动画代理方法,可以写

3.设置一些必要或需要的属性

例如:

animation.duration =2.5;// 动画持续时间

animation.repeatCount =1;// 不重复

animation.beginTime =CACurrentMediaTime() +2;// 2秒后执行

animation.autoreverses =YES;// 结束后执行逆动画

animation.fromValue = [NSValuevalueWithCGPoint:CGPointMake(0,0)];// 起始点

animation.toValue = [NSValuevalueWithCGPoint:CGPointMake(320,480)];// 终了点

4.将动画添加到layer层,并且自定义一个键值名来保存设置

例如:

[View.layer addAnimation:animation forKey:@"move-layer"];

5.可以在代理方法中写一些操作

- (void)animationDidStart:(CAAnimation *)theAnimation{

NSLog(@"动画启动");

}

- (void)animationDidStop:(CAAnimation*)theAnimation finished:(BOOL)flag{

NSLog(@"动画停止了");

}

相关文章

网友评论

      本文标题:iOS核心动画运用思路

      本文链接:https://www.haomeiwen.com/subject/ljehvftx.html