iOS-Senior17-CoreAnimation动画

1.CABasicAnimation动画

//设置全局变量图片

@property (nonatomic,strong) UIImageView *eyeImage;

//设置圆角(注意:光设置上边一句代码是实现不了效果的,下边的masksToBounds这个属性影响layer层的阴影效果)

self.eyeImage.layer.cornerRadius = 40;

self.eyeImage.layer.masksToBounds = YES;

//设置阴影

//设置layer的阴影颜色

self.eyeImage.layer.shadowColor = [UIColor yellow].CGColor;

//设置layer层的透明度

self.eyeImage.layer.shadowOpacity = 1.0;

//设置阴影的偏移量

self.eyeImage.layer.shadowOffSet = CGSizeMake(-20,10);

//设置阴影的模糊度

self.eyeImage.layer.shadowRadius = 1.0f;

##########自定义layer######################

//创建一个对象

CALayer *layer = [CALayer layer];

//设置对象的位置和大小

layer.frame = CGRectMake(0,280,100,100);

//设置背景颜色

layer.backgroundColor = [UIColor redColor].CGColor;

//layer需要添加到layer层

[self.view.layer addSublayer:layer];

//设置锚点

layer.anchorPoint = CGPointMake(0,0);

//设置大小(位置)

layer.position = CGPointMake(100,100);

CABasicAnimation动画

//第一步:创建动画的对象

CABasicAnimation *basicAnimation = [CABasicAnimation animation];

//第二步:告诉layer层需要执行什么样子的动画[后边设置的内容为CALayer的相关属性]

basicAnimation.keyPath = @"position";

//第三步:告诉从哪里来,到哪里去

basicAnimation.fromValue = [NSValue valueWithCGPoint : CGPointMake(100,100)];

basicAnimation.toValue = [NSValue valueWirhCGPoint : CGPointMake(300,300)];

//注意点:如果要实现移动的位置不回到原来的位置,需要实现以下两句代码

basicAnimation.removeOnCompletion = NO;  

//设置保存动画状态的内容

basicAnimation.fillMode = KCAFillModeForwards;

//第四步:设置动画持续时长

basicAnimation.duration = 6.0f;

//第五步:将要执行的动画添加到calayer层

[self.eyeImage.layer addAnimation:basicAnimation forKey:@"basic"];

###############翻转效果#######################

CABasicAnimation *basic = [CABasicAnimation animation];

basic.keyPath = @"transform";

//设置翻转到的地方

basic.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2,0,0,1)];

basic.duration = 0.2f;

[self.eyeImage.layer addAnimation:basic forKey:@"aaa"];

//根据key区移除动画

[self.eyeImage.layer removeAnimationForKey:@"basic"];

2.CAKeyFrameAnimation动画

//第一步:创建对象

CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animation];

//第二步:设置动画轨迹

keyFrameAnimation.keyPath = @"transform.rotation";

//第三步:设置旋转角度(弧度计算公式:度数/180*M_PI)

keyFrameAnimation.values = @[@(-4/180.0 *M_PI),@(4/180.0 *M_PI),@(8/180 *M_PI)];

//第四步:设置时长

keyFrameAnimation.Duration = 3.0f;

//第五步:添加动画到layer层

[self.eyeImage.layer addAnimation:keyFrameAnimation forKey:@"keyFrameAnimation"];

3.CAAnimationGroup动画

//平移动画

CABasicAnimation *basicAnimation1 = [CABsicAnimation animation];

basicAnimation1.keyPath = @"transform.translation.y";

basicAnimation1.toValue = @(400);

//翻转动画

CABasicAnimation *basicAnimation2 = [CABasicAnimation animation];

basicAnimation2.keyPath = @"transform.scale";

basicAnimation2.toValue = @(0.2);

//旋转动画

CABasicAnimation *baiscAnimation3 = [CABasicAnimation animation];

basicAnimation3.keyPath = @"transform.rotation";

basicAnimation3.toValue = @(M_PI);

//需要创建管理各个动画的动画组

CAAnimationGroup *group = [CAAnimationGroup animation];

group.animations = @[basicAnimation1,basicAnimation2,basicAnimation3];

group.duration = 5.0f;

[self.eyeImage.layer addAnimation:group forKey:@"groupAnimation"];

4.CASpringAnimation动画

CASpringAnimation *springAnimation = [CASpringAnimation animation];

springAnimation.keyPath = @"transform.scale";

springAnimation.fromValue = @1;

springAnimation.toValue = @0.25;

springAnimation.duration = 2.0f;

[self.eyeImage.layer addAnimation :springAnimation forKey:@"springAnimation"];

时间: 2024-10-24 12:00:33

iOS-Senior17-CoreAnimation动画的相关文章

iOS关于CoreAnimation动画知识总结

一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了:UIKit动画有两种写法:它不仅可以针对视图还可以针对其它控件: 1:第一种写法是利用属性,结合beginAnimations.commitAnimations -(void)animationOfUIKit { UIView *redView=[[UIView alloc]initWithFram

iOS关于CoreAnimation动画知识总结(转)

一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了:UIKit动画有两种写法:它不仅可以针对视图还可以针对其它控件: 1:第一种写法是利用属性,结合beginAnimations.commitAnimations -(void)animationOfUIKit { UIView *redView=[[UIView alloc]initWithFram

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer 二.CAGradientLayer 三.CAReplicatorLayer 四.CAShapeLayer 五.CATextLayer iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一.CAEmitterLayer CAEmitterLayer是CoreAnimation框架中的粒子发射层,在以前的一片博客中有详细的介绍和范例,这里不再重复,地址如下: 粒

iOS开发CoreAnimation解读之二——对CALayer的分析

iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二.几种系统的Layer类 1.CAEmitterLayer 2.CAGradientLayer 3.CAEAGLLayer 4.CAReplicatorLayer 5.CAScrollLayer 6.CAShapeLayer 7.CATextLayer 8.CATiledLayer 9.CATrans

ios开发中动画那点事

一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了,Core Animation中包含了可以实现更为复杂的基础动画和关键帧动画等等.UIKit动画有两种写法,它不仅可以针对视图还可以针对其它控件. 1:第一种写法是利用属性,结合beginAnimations.commitAnimations -(void)animationOfUIKit { UIV

GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法

1.GIF动画 1 // 创建一个显示图片的imageView // viewController创建 2 UIImageView *showGifImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 414, 736)]; 3 [self.view addSubview:showGifImageView]; 4 5 6 //创建一个存储图片的数组 7 NSMutableArray *saveImageViewArray

iOS中的动画

什么是动画,动画其实就是我们看到的画面变化的一个过程 那么在iOS中,实现一个最简单的动画需要几步呢? a Simple animation { // 1.开启动画 [UIViewbeginAnimations:nilcontext:nil]; [UIViewsetAnimationDuration:2.0]; // 2.修改属性 CGRect tempF = self.head.frame; tempF.origin.x += 50; tempF.origin.y += 100; tempF.

ios中layer动画和UIView动画代码总结

kCATransitionFade淡出 kCATransitionMoveIn覆盖原图 kCATransitionPush推出 kCATransitionReveal底部显出来 pageCurl   向上翻一页 pageUnCurl 向下翻一页 rippleEffect 滴水效果 suckEffect 收缩效果,如一块布被抽走 cube 立方体效果 oglFlip 上下翻转效果 #pragma mark UIView 动画 - (IBAction)pressClick1:(id)sender {

转 iOS Core Animation 动画 入门学习(一)基础

iOS Core Animation 动画 入门学习(一)基础 reference:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514 在iOS中,每个view中都自动配置了一个layer,我们不能人为新建,而在Mac OS中,view默认是没有

ios客户端暑期“动画屋“活动项目总结

    入职实习的这个公司,第一天就分配了任务,从零开始写一个网页,之前虽然了解一些前端知识,但从头开写还是遇到了很多问题,互联网公司讲求效率,有deadline还是比较有紧迫感的,与在实验室放羊状态有了鲜明的对比.mentor.产品经理.组里的boss.实习生同事都给我提供了非常多的帮助.此篇总结为独立完成的第一个项目的项目总结.下图是已上线活动界面效果. 项目介绍 (一).爱奇艺IOS客户端发现-活动页面中"动画屋"活动开始页面的开发     活动开始页面的开发主要需求是: