#pragma mark - CABasicAnimation动画
- (IBAction)basicAnimation:(UIButton *)sender { // 1.创建动画对象
CABasicAnimation *basicAnimation = [CABasicAnimation animation]; // 2.告诉layer层需要执行什么样的动画【后面设置的内容为CALayer的相关属性】
basicAnimation.keyPath = @"position"; // 3.告诉layer从哪里来,要到哪里去
basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(, )];
basicAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(, )]; // 如果要实现移动后不回到原来的位置
basicAnimation.removedOnCompletion = NO;
basicAnimation.fillMode = kCAFillModeForwards; // 保存动画状态的内容 // 4.设置动画持续的时长
basicAnimation.duration = 6.0f; // 5.将要执行的动画添加到CALayer上
[self.imgView.layer addAnimation:basicAnimation forKey:@"basic"]; /***************** 翻转效果 *********************/
CABasicAnimation *basicAnimation1 = [CABasicAnimation animation];
basicAnimation1.keyPath = @"transform"; // 设置的翻转到的地方
basicAnimation1.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, , , )]; basicAnimation1.duration = 4.0f;
[self.imgView.layer addAnimation:basicAnimation1 forKey:@"aaa"]; // 根据key移除动画
[self.imgView.layer removeAnimationForKey:@"basic"];
}
 #pragma mark - CAKeyFrameAnimation动画
- (IBAction)CAKeyFrameAnimation:(UIButton *)sender { // 1.创建对象
CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animation]; // 2.设置动画轨迹
keyFrameAnimation.keyPath = @"transform.rotation"; // 3.设置旋转角度(弧度的计算公式:度数 / 180 * M_PI)
keyFrameAnimation.values = @[@(- / 180.0 * M_PI), @( / 180.0 * M_PI), @( / 180.0 * M_PI)]; // 4.设置时长
keyFrameAnimation.duration = 3.0f; // 5.添加动画到layer层
[self.imgView.layer addAnimation:keyFrameAnimation forKey:@"ccc"]; }
 #pragma mark - CAAnimationGroup动画
- (IBAction)CAAnimationGroup:(UIButton *)sender { // 平移动画
CABasicAnimation *basic1 = [CABasicAnimation animation];
basic1.keyPath = @"transform.translation.y";
basic1.toValue = @(); // 翻转动画
CABasicAnimation *basic2 = [CABasicAnimation animation];
basic2.keyPath = @"transform.scale";
basic2.toValue = @(0.5); // 旋转动画
CABasicAnimation *basic3 = [CABasicAnimation animation];
basic3.keyPath = @"transform.rotation";
basic3.toValue = @(M_PI); // 创建管理各个动画的动画组
CAAnimationGroup *group = [CAAnimationGroup animation];
group.animations = @[basic1, basic2, basic3];
group.duration = 5.0f;
[self.imgView.layer addAnimation:group forKey:@"ddd"];
}
 #pragma mark - CASpringAnimation动画
- (IBAction)CASpringAnimation:(UIButton *)sender { CASpringAnimation *springAnimation = [CASpringAnimation animation];
springAnimation.keyPath = @"transform.scale";
springAnimation.fromValue = @;
springAnimation.toValue = @0.25;
springAnimation.duration = 3.0f;
[self.imgView.layer addAnimation:springAnimation forKey:@"eee"];
}

最新文章

  1. js loaclstorage和sessionstorage
  2. session_id 恢复 session的内容
  3. [LintCode] Longest Substring Without Repeating Characters
  4. POJ 1113 Wall(Graham求凸包周长)
  5. IOS-连接
  6. char与byte的差别
  7. 1st_homework_SE--四则运算题目生成器
  8. linux下PHP后台配置极光推送问题
  9. window7 32位部署django
  10. hsf
  11. conda 安装多个版本的python
  12. 环境变量误删path找回方法与mysql基础命令
  13. 几种序列化协议(protobuf,xstream,jackjson,jdk,hessian)相关数据对比
  14. tfs 禁止多人签出
  15. [Laravel] 07 - Project: functions in Controller
  16. SVM的代码实现-python
  17. Docker在Windows下的安装以及Hello World
  18. 网卡bonding模式 - bond0、1、4配置
  19. 84直方图最大矩形覆盖 · Largest Rectangle in Histogram
  20. DBMS_LOB的简单用法以及释放DBMS_LOB生成的临时CLOB内存

热门文章

  1. 爬虫技术 -- 基础学习(四)HtmlParser基本认识
  2. UBUNTU上的GIT SERVER
  3. 受限玻尔兹曼机(RBM)学习笔记(二)网络结构
  4. Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)
  5. ExtendHelper
  6. mysql update时报错You are using safe update mode
  7. ok6410 android driver(7)
  8. 关于URL、Web的一些概念
  9. WebApi传参总动员(填坑)
  10. BI之SSAS完整实战教程1 -- 开篇, BI简介 & SSAS简介