美文网首页
iOS Layer基本动画

iOS Layer基本动画

作者: Lambo316 | 来源:发表于2016-06-28 10:57 被阅读205次

一、基本动画

1、旋转

//旋转的时候可以绕着 x,y,z旋转 默认的是z

CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];

basicAnimation.duration = 5;

//保持最后的位置和动画结束的位置一致

basicAnimation.fillMode = kCAFillModeForwards;

basicAnimation.removedOnCompletion = NO;

//byvalue:最后的结果是 byValue + fromValue

//tovalue:最后的结果舐 tovalue

//    basicAnimation.fromValue = @(M_PI / 8);

basicAnimation.toValue = @(M_PI);

//    basicAnimation.byValue = @(M_PI / 8);

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

2、缩放

CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

basicAnimation.duration = 5;

basicAnimation.fillMode = kCAFillModeBoth;

basicAnimation.removedOnCompletion = NO;

basicAnimation.delegate = self;

//byvalue:最后的结果是 byValue + fromValue

//tovalue:最后的结果是 tovalue

//        basicAnimation.fromValue = @(2);

basicAnimation.toValue = @(0.5);

//        basicAnimation.byValue = @(2);

[_myView.layer addAnimation:basicAnimation forKey:@"basic”];

//在动画执行结束之后,继续执行一些操作

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag

二、group

CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

basicAnimation.duration = 3;

basicAnimation.fillMode = kCAFillModeBoth;

basicAnimation.removedOnCompletion = NO;

basicAnimation.delegate = self;

//byvalue:最后的结果是 byValue + fromValue

//tovalue:最后的结果是 tovalue

//        basicAnimation.fromValue = @(2);

basicAnimation.toValue = @(0.5);

//        basicAnimation.byValue = @(2);

中心点旋转CGAffineTransformRotate

view.titleImg.transform=CGAffineTransformRotate(view.titleImg.transform,0.001);

返回原点

view.titleImg.transform=CGAffineTransformMakeRotation(0);

//旋转的时候可以绕着 x,y,z旋转 默认的是z

CABasicAnimation *basicAnimation1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

basicAnimation1.duration = 3;

//保持最后的位置和动画结束的位置一致

basicAnimation1.fillMode = kCAFillModeForwards;

basicAnimation1.removedOnCompletion = NO;

//byvalue:最后的结果是 byValue + fromValue

//tovalue:最后的结果舐 tovalue

//    basicAnimation.fromValue = @(M_PI / 8);

basicAnimation1.toValue = @(M_PI);

//    basicAnimation.byValue = @(M_PI / 8);

//group

CAAnimationGroup *groupAnimation = [CAAnimationGroup animation];

groupAnimation.duration = 3;

groupAnimation.repeatCount = 10;

//按照原路返回

groupAnimation.autoreverses = YES;

groupAnimation.animations = @[basicAnimation,basicAnimation1];

[_myView.layer addAnimation:groupAnimation forKey:@"eee”];

三、spring

CASpringAnimation *spring = [CASpringAnimation animationWithKeyPath:@"transform.scale"];

//质量

spring.mass = 50;

spring.fromValue = @(0.5);

spring.toValue = @(1);

spring.repeatCount = 10;

spring.autoreverses = YES;

spring.initialVelocity = 100;

spring.duration = spring.settlingDuration;

[_myView.layer addAnimation:spring forKey:@"spring”];

四、帧动画

UIBezierPath *path = [UIBezierPath bezierPath];

[path moveToPoint:CGPointMake(100, 200)];

[path addLineToPoint:CGPointMake(100, 100)];

[path addLineToPoint:CGPointMake(100, 200)];

[path addLineToPoint:CGPointMake(150, 300)];

[path addLineToPoint:CGPointMake(100, 400)];

[path addLineToPoint:CGPointMake(100, 200)];

CAKeyframeAnimation *moveAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

moveAnimation.duration = 5;

moveAnimation.removedOnCompletion = NO;

moveAnimation.fillMode = kCAFillModeForwards;

//淡入淡出

moveAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

//用路径 所以value无效

moveAnimation.path = path.CGPath;

[_myView.layer addAnimation:moveAnimation forKey:@"moveAnimation”];

五、value times

//values times

CAKeyframeAnimation *rotationAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"];

rotationAnimation.fillMode = kCAFillModeForwards;

rotationAnimation.removedOnCompletion = NO;

rotationAnimation.duration = 10;

rotationAnimation.values = @[@(0),@(M_PI /4),@(M_PI)];

rotationAnimation.keyTimes = @[@(0.1),@(0.3),@(0.8)];

[_myView.layer addAnimation:rotationAnimation forKey:@"ww"];

相关文章

  • iOS Layer基本动画

    一、基本动画 1、旋转 //旋转的时候可以绕着 x,y,z旋转 默认的是z CABasicAnimation *b...

  • iOS里的核心动画

    iOS中核心动画分为:基本动画、关键帧动画、转场动画、动画组.(layer中不能真实改变图层动画值,我们所看到的动...

  • CALayer上动画的暂停和恢复

    iOS10自带了暂停动画的方法 在iOS10以下 需要自己实现 1.暂停layer动画 2.恢复layer上的动画

  • iOS 开发核心动画Core Animation(附demo)

    最近在研究iOS动画,iOS中添加动画的方法:UIView的简单动画,layer的隐式动画,还有Core Anim...

  • iOS动画(补充)--特殊Layer动画

    iOS中有一些特殊的layer,也可以做一些动画效果,本文就补充两个可以做动画效果的layer: CAEmitte...

  • CoreAnimation渲染流水线

    iOS渲染框架 Core AnimationCore Animation 源自于 Layer Kit,动画只是 C...

  • iOS离屏渲染解析

    iOS渲染层级 CoreAnimation核心动画是由Layer Kit演变而来,所以它并不是只能做关于动画方面的...

  • iOS 动画(1) - 移动

    据说 iOS 动画分为 View Animations和Layer Animations,至于为何,我暂且不知。下...

  • 动画

    UIView基础动画实现方式二 下边我们就来看下Layer动画 1.核心动画的基本概念: 1.1.coreAnim...

  • iOS动画之UIView动画

    iOS动画 UIView动画 UIViewAnimationOptions参考 1. 基本动画 + (void)a...

网友评论

      本文标题:iOS Layer基本动画

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