ios动画
_lable = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
_lable.text = @"果然小行家";
_lable.textAlignment = 1;
_lable.center = self.view.center;
_lable.textColor = [UIColor redColor];
_lable.layer.cornerRadius = 50;
_lable.layer.backgroundColor = [UIColor cyanColor].CGColor;
[self.view addSubview:_lable];
// UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
// button.frame = CGRectMake(100, 100, 60, 40);
// [button setTitle:@"暂停" forState:0];//实现动画的暂停
// [button setTitleColor:[UIColor redColor] forState:0];
// [button addTarget:self action:@selector(handleButton:) forControlEvents:UIControlEventTouchUpInside];
// [self.view addSubview:button];
//
// UIButton *resumeButton = [UIButton buttonWithType:UIButtonTypeCustom];
// [resumeButton setTitle:@"重启" forState:0];
// [resumeButton setTitleColor:[UIColor blueColor] forState:0];
// resumeButton.frame = CGRectMake(200, 100, 60, 40);
// [resumeButton addTarget:self action:@selector(handleResumeBtn:) forControlEvents:UIControlEventTouchUpInside];
// [self.view addSubview:resumeButton];
一 //通过定时器实现旋转------------旋转
// _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(actionTimer:) userInfo:nil repeats:YES];
// [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSDefaultRunLoopMode];
// [_timer fire];
二 //实现位置的移动
// CABasicAnimation *animal = [CABasicAnimation animationWithKeyPath:@"transform"];
// CATransform3D form = CATransform3DMakeTranslation(-350, -100, 0);//控制位置
// animal.toValue = [NSValue valueWithCATransform3D:form];
// animal.duration = 1;
// animal.removedOnCompletion = NO;
// animal.fillMode = kCAFillModeForwards;
// [_lable.layer addAnimation:animal forKey:nil];
三 //大小 实现大小的变化
// CABasicAnimation *animal = [CABasicAnimation animationWithKeyPath:@"transform"];
// CATransform3D form = CATransform3DMakeScale(1.2, 1.2, 1);
// animal.toValue = [NSValue valueWithCATransform3D:form];
// animal.duration = 0.5;
// animal.repeatCount = MAXFLOAT;
// animal.autoreverses = YES;
// [_lable.layer addAnimation:animal forKey:nil];
四 //实现大小、位置的变化通过bounds、position来实现
/*
//bounds
// CABasicAnimation *animal = [CABasicAnimation animationWithKeyPath:@"bounds"];
// animal.duration = 2;
// animal.toValue = [NSValue valueWithCGRect:CGRectMake(-200, 0, 10, 10)];
// [_lable.layer addAnimation:animal forKey:nil];
五 //position
// CABasicAnimation *animal = [CABasicAnimation animationWithKeyPath:@"position"];
// animal.toValue = [NSValue valueWithCGPoint:CGPointMake(250, 500)];
// //取消反弹
// animal.removedOnCompletion = NO;
// animal.duration = 1.5;
// animal.repeatCount = 3;
// animal.fillMode = kCAFillModeForwards;
// [_lable.layer addAnimation:animal forKey:nil];
*/
六 /****** CAKeyframeAnimation--->关键帧动画 ****/
//多步动画 来回晃动的动画效果
// CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position.x"];
// animation.values = @[@0, @50, @-10, @50, @0];
// //设置每一帧执行的时间长短 这个的取值为0-1,代表占用时间的比例
// animation.keyTimes = @[@0, @(1 / 6.0), @(3 / 6.0), @(5 / 6.0), @1];
// animation.duration = 1;
//// animation.repeatCount = 10;
// animation.repeatCount = 10000;
// //设置帧的中间值如何计算
// animation.calculationMode = kCAAnimationPaced;
// //additive 这个属性确定动画执行的状态是否叠加在控件的原状态上
// //默认设置为NO,如果我们执行两次位置移动的动画,会从同一位置执行两次
// //如果设置为YES,则会在第一次执行的基础上执行第二次动画
// animation.additive = YES;
// [_lable.layer addAnimation:animation forKey:nil];
// _lable.layer.zPosition = 1;
七 //位置
//沿贝塞尔曲线的动画
//这个方法将创建椭圆形路径
// 实现一个控件围绕一个点转圈的效果
// CGRect boundingRect = CGRectMake(-40, 0, 100, 100);
// UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:boundingRect cornerRadius:50];
//
// CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
// //设置一个路径
// animation.path = path.CGPath;
// animation.duration = 4;
// animation.additive = YES;
// animation.repeatCount = HUGE_VALF;
// animation.calculationMode = kCAAnimationPaced;
// animation.rotationMode = kCAAnimationRotateAuto;
// [_lable.layer addAnimation:animation forKey:nil];
八 /********* CASpringAnimation---> 弹性动画 ********/
// CASpringAnimation *animation = [CASpringAnimation animationWithKeyPath:@"position"];
// animation.toValue = [NSValue valueWithCGPoint:CGPointMake(175, 400)];
//
// //质量,影响图层运动时的弹簧惯性,质量越大,弹簧拉伸和压缩的幅度越大
// //如果把质量改成10,则动画的速度变慢,并且波动幅度变大
// animation.mass = 3;
//
// //阻尼系数,阻止弹簧伸缩的系数,阻尼系数越大,停止越快
// animation.damping = 30;
// //初始速率,动画视图的初始速度大小
// animation.initialVelocity = 10;
// //刚度 刚度系数越大,形变产生的力就越大,运动越快
// animation.stiffness = 10;
//
// animation.duration = 2;
// animation.fillMode = kCAFillModeForwards;
// animation.removedOnCompletion = NO;
// [_lable.layer addAnimation:animation forKey:nil];
九 /**** CATransition--->转场动画 *****/
// //定义个转场动画
CATransition *animation = [CATransition animation];
//转场动画持续时间
animation.duration = 1;
//转场动画类型
animation.type = kCATransitionPush;
//转场动画将去的方向
animation.subtype = kCATransitionFromBottom;
//添加动画 (转场动画是添加在层上的动画)
[_lable.layer addAnimation:animation forKey:nil];