#import "CoreAnimationViewController.h"

@interface CoreAnimationViewController ()
@property(nonatomic, strong)UIView *myView;

@end

@implementation CoreAnimationViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    self.myView = [[UIView alloc ] initWithFrame:CGRectMake(100, 100, 100, 100)];
    self.myView.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:_myView];
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

//用于进行旋转的

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

//设置持续时间
    base.duration = 1;
    //瞬时针旋转从**到**
    base.fromValue = @0;
  base.toValue = @(M_PI_2);
[self.myView.layer addAnimation:base forKey:@"base"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 //用于一系列的颜色变化

CAKeyframeAnimation *color = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    color.duration = 10;
    id k1 = (id)[UIColor blueColor].CGColor;
id k2 = (id)[UIColor cyanColor].CGColor;
    id k3 = (id)[UIColor magentaColor].CGColor;
    id k4 = (id)[UIColor grayColor].CGColor;
    color.values = @[k1, k2, k3, k4];
 //添加动画
 [self.myView.layer addAnimation:color forKey:@"color"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 //用于一系列的未知的变化
    CAKeyframeAnimation *position = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    position.duration = 2;
    NSValue *v1 = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
    NSValue *v2 = [NSValue valueWithCGPoint:CGPointMake([UIScreen mainScreen].bounds.size.height - 100, 0)];
    NSValue *v3 = [NSValue valueWithCGPoint:CGPointMake([UIScreen mainScreen].bounds.size.width - 100, [UIScreen mainScreen].bounds.size.height - 100)];
    NSValue *v4 = [NSValue valueWithCGPoint:CGPointMake(0, [UIScreen mainScreen].bounds.size.height - 100)];
    NSValue *v5 = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
    position.values = @[v1,v2,v3,v4,v5];
    position.keyTimes = @[@(0.1), @(0.4), @(0.5), @(0.8), @1];
    [self.myView.layer  addAnimation:position forKey:@"position"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
   //动画组
    //组合式的添加动画
    CAAnimationGroup *group = [CAAnimationGroup animation];
    group.duration = 2;
    group.animations = @[color,position];
   [self.myView.layer addAnimation:group forKey:@"group"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
  //切换特效
    CATransition *transition = [CATransition animation];
    transition.duration = 2;
 //切换的类型
 transition.type = @"cube";
 //设置子切换类型
  transition.subtype = kCATransitionFromLeft;
    [self.myView.layer addAnimation:transition forKey:@"transition"];

}

Object-C 里面的animation动画效果,核心动画的更多相关文章

  1. iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)

    一.各个动画的优缺点 1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了. 2.核心动画:有点在于对后续的处理方便. 3.块动画: (1)在实际的 ...

  2. html5--6-55 动画效果-关键帧动画

    html5--6-55 动画效果-关键帧动画 实例 @charset="UTF-8"; div{ width: 150px; height: 150px; font-size: 2 ...

  3. 用js实现动画效果核心方式

    为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...

  4. jQuery 动画效果 与 动画队列

    基础效果 .hide([duration ] [,easing ] [,complete ]) 用于隐藏元素,没有参数的时候等同于直接设置 display 属性 $('.target').hide() ...

  5. 核心动画——Core Animation

    一. CALayer (一). CALayer简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比方一个button.一个文本标签.一个文本输入框.一个图标等等.这些都是UIView ...

  6. iOS - Core Animation 核心动画

    1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...

  7. 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果

    AlphaAnimation 透明效果实现: activity_main.xml中仅仅是一个简单的图片,下面的例子都会使用这个xml: <RelativeLayout xmlns:android ...

  8. Android动画效果之Tween Animation(补间动画)

    前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...

  9. android Animation 动画效果介绍

    Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动 ...

随机推荐

  1. PHP 防恶意刷新实现代码

    本质还是采用session方式进行时间比较,在单位时间内允许访问或者访问次数,如果有使用反向代理的话,也可以采用nginx配置 <?phpsession_start();  $k=$_GET[' ...

  2. C语言中指针和数组的区别

    看<C专家编程>一书,看到数组与指针并不相同一章,遂做了一段测试: 代码: #include <stdio.h> #include <stdlib.h> int m ...

  3. 如何使用 ui-router-extras

    为了使用ui-router创建tabs构架,使用ui-router-extras 使用方法: 0. 安装包 bower install ui-router-extras --save-dev 1. 引 ...

  4. Winform中Chart图表的简单使用

    在常见的一些数据采集的系统中, 都少不了一个就是, 数据分析, 无论是报表的形式, 还是图形的形式. 他都是可以迅速的展现一个数据趋势的实现方法, 而今天, 就是简单介绍一下, 微软的工具库自带的 C ...

  5. scrapy设置"请求池"

    scrapy设置"请求池" 引言 相信大家有时候爬虫发出请求的时候会被ban,返回的是403错误,这个就是请求头的问题,其实在python发出请求时,使用的是默认的自己的请求头,网 ...

  6. 什么是Css Hack?ie6,7,8的hack分别是什么?

    针对不同的浏览器写不同的CSS code的过程,就是CSS hack. 示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 #test       { width:300px; heig ...

  7. android的drawable资源

    1.android中可以通过xml文件配置资源,比如字符串啦,整数拉.浮点数等等,当然也可以配置图片资源和选择器,下面我们就看看几种图片资源的配置. @1矩形方框,带渐变色的配置代码 <?xml ...

  8. el 表达式遍历Map

    el 表达式遍历Map<c:forEach var="item" items="${payMentMap}"> <option value=& ...

  9. centos生成公钥私钥 securecrt通过公钥访问服务器 winscp通过公钥访问服务器

    忙碌了一下午,一直到写博客现在.都在纠结阿里云服务器上配置公钥私钥,网上的说辞总是参差不齐,需要各个去综合,合理取舍.今天终于配置好了. 我就不说这种方式的重要性了,往往黑客都不需要你的登陆账户密码就 ...

  10. panic和recover的使用规则

    转自个人博客 chinazt.cc 在上一节中,我们介绍了defer的使用. 这一节中,我们温习一下panic和recover的使用规则. 在golang当中不存在tye ... catch 异常处理 ...