1. 缩放

CABasicAnimation *theAnimation=[CABasicAnimation animationWithKeyPath:@"transform"];
    //x,y,z放大缩小倍数
    CATransform3D transform=CATransform3DMakeScale(0.5, 0.5, 1.0);
    NSValue *value=[NSValue valueWithCATransform3D:transform];
    [theAnimation setToValue:value];
    
    
    transform=CATransform3DMakeScale(1.0, 1.0, 1.0);
    value=[NSValue valueWithCATransform3D:transform];
    
    [theAnimation setAutoreverses:YES];  //原路返回的动画一遍
    [theAnimation setDuration:1.0];//执行动画的时间
    [theAnimation setRepeatCount:2];//执行动画的次数
    
    [layer addAnimation:theAnimation forKey:nil];

2.动画旋转

CABasicAnimation *theAnimation=[CABasicAnimation animationWithKeyPath:@"transform"];
    CATransform3D transform=CATransform3DMakeRotation(90*M_PI/180, 1, 1, 0);//
    NSValue *value = [NSValue valueWithCATransform3D:transform];
    [theAnimation setToValue:value];

/*
     angle:旋转的弧度,所以要把角度转换成弧度:角度 * M_PI / 180。
     
     x:向X轴方向旋转。值范围-1 --- 1之间
     
     y:向Y轴方向旋转。值范围-1 --- 1之间
     
     z:向Z轴方向旋转。值范围-1 --- 1之间
     向 X轴,Y轴都旋转60度,就是沿着对角线旋转。
     */
    transform = CATransform3DMakeRotation(1, 1, 1, 0);
    value = [NSValue valueWithCATransform3D:transform];
    [theAnimation setFromValue:value];
    theAnimation.duration=2;
    theAnimation.autoreverses=YES;
    [layer addAnimation:theAnimation forKey:nil];

3.组动画

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"];

CATransform3D rotateTransform = CATransform3DMakeRotation(1.57, 0, 0, -1);
    CATransform3D scaleTransform = CATransform3DMakeScale(2, 2, 2);
    //(CGFloat tx,CGFloat ty, CGFloat tz ,x,y,z轴的偏移量
    CATransform3D positionTransform = CATransform3DMakeTranslation(1, 200, 0); //位置移动
    CATransform3D combinedTransform =CATransform3DConcat(rotateTransform, scaleTransform); //Concat就是combine的意思
    combinedTransform = CATransform3DConcat(combinedTransform, positionTransform); //再combine一次把三个动作连起来
    
    [anim setFromValue:[NSValue valueWithCATransform3D:CATransform3DIdentity]]; //放在3D坐标系中最正的位置
    [anim setToValue:[NSValue valueWithCATransform3D:combinedTransform]];
    [anim setDuration:5.0f];
    
    [layer addAnimation:anim forKey:nil];
    
    [layer setTransform:combinedTransform];  //如果没有这句,layer执行完动画又会返回最初的state

 

CATransform3D的使用以及各个参数的含义的更多相关文章

  1. MySQL 各种超时参数的含义

    MySQL 各种超时参数的含义 今日在查看锁超时的设置时,看到show variables like '%timeout%';语句输出结果中的十几种超时参数时突然想整理一下,不知道大家有没有想过,这么 ...

  2. tcp/ip协议listen函数中backlog参数的含义与php-fpm的502 Bad Gateway

    To understand the backlog argument, we must realize that for a given listening socket, the kernel ma ...

  3. [转载]linux下编译php中configure参数具体含义

    编译N次了   原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php ...

  4. 彻底搞明白find命令的-mtime参数的含义【转载】

    转自: 彻底搞明白find命令的-mtime参数的含义-goolen-ITPUB博客http://blog.itpub.net/23249684/viewspace-1156932/ 以前一直没有弄明 ...

  5. Oracle创建表时Storage参数具体含义

    本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义. 可用于:表空间.回滚段.表.索引.分区.快照.快照日志 参数名称 缺省值 最小值 最大值 说明 INITIAL 5 ...

  6. 对tomcat7模拟并发请求及相关配置参数的含义

    这里的并不是真正的并发请求,因为for循环是间隔10毫秒,并且线程初始化也需要时间的,到真正执行http请求的时刻是不确定的.  tomcat 的运行状态可以在webapps下的manage项目查看, ...

  7. ajax 方法的使用以及方法中各参数的含义

    由于近来经常在项目中使用 ajax 这个函数,在工作之余自己查找了相关的资料,并总结了 ajax 方法的使用,以及方法中各个参数的含义,供大家学习参考使用 type: 要求为String类型的参数,请 ...

  8. opencv ORB各参数的含义

    ORB中有很多参数可以设置,在OpenCV中它可以通过ORB来创建一个ORB检测器. ORB::ORB(int nfeatures=500, float scaleFactor=1.2f, int n ...

  9. shell编程之脚本参数$@,$*,$#,$$,$?的含义

    #首先按顺序解释各个参数的含义 1.$0  表示脚本的文件名, 具体的路径信息和执行命令时的相对位置有关,例如 sakura@mi-OptiPlex-7050:~/sh$ sh args.sh arg ...

随机推荐

  1. mysql5.7.14 配置

    1. 下载并解压 zip包 2.将解压后的目录 bin  配置到path中 3.修改my-default.ini 文件名为my.ini 4.配置my.ini [mysql] #设置mysql客户端默认 ...

  2. JAVA String 工具类

    java StringUtil 字符串工具类 import java.util.ArrayList; import java.util.LinkedHashSet; import java.util. ...

  3. 运用bootstrap框架的时候 引入文件的问题

    还要下个jquery,因为bootstrap的js是用jquery写的如果在同一个目录下<html><head><link href="css/bootstra ...

  4. django+celery+rabitmq

    django 项目中的设置(proj代表项目目录) proj settings.py CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672/' ...

  5. 淘淘商城_day06_课堂笔记

    今日大纲 实现单点登录系统 基于单点登录系统实现,用户的注册和登录 商品数据同步问题 问题 后台系统中将商品修改,前台系统没有进行数据的同步,导致前端系统不能够实时显示最新的数据. 解决 后台系统中商 ...

  6. ACdream 1064 完美数

    数位dp. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #incl ...

  7. Flood-it!

    Flood-it! 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4127/http://acm.split.hdu.edu.cn/showproble ...

  8. Activity的四中启动模式的应用场景。

    1,standard 默认情况下的启动模式,队列排序,linked 2,singleTop ,任务栈栈顶只有一个实例.如果Activity A在栈顶,就不会在A 的上面创建新的 Activity  A ...

  9. LeetCode OJ 4. Median of Two Sorted Arrays

    There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...

  10. SecureCRT - 使用方法和技巧

    1. 保活防掉线选项 -> 会话选项 -> 终端勾选 自动重新连接, 发送协议 NO-OP 每60秒 2. 拷贝与粘贴的设置选项 -> Global options -> Te ...