CATransform3D的m34值动画

效果

源码

https://github.com/YouXianMing/Animations

//
// CATransform3DM34Controller.m
// Animations
//
// Created by YouXianMing on 16/1/9.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import "CATransform3DM34Controller.h"
#import "GCD.h"
#import "Math.h" @interface CATransform3DM34Controller () @property (nonatomic, strong) CALayer *layer;
@property (nonatomic, strong) GCDTimer *timer;
@property (nonatomic) BOOL transformState; @end @implementation CATransform3DM34Controller - (void)setup { [super setup]; [self initLayer]; [self timerEvent];
} - (void)initLayer { // Init layer.
UIImage *image = [UIImage imageNamed:@""];
self.layer = [CALayer layer];
self.layer.frame = CGRectMake(, , image.size.width / .f, image.size.height / .f);
self.layer.position = self.view.center;
self.layer.borderWidth = .f;
self.layer.borderColor = [UIColor blackColor].CGColor;
self.layer.contents = (__bridge id)image.CGImage;
[self.view.layer addSublayer:self.layer];
} - (void)timerEvent { // Timer event.
self.timer = [[GCDTimer alloc] initInQueue:[GCDQueue mainQueue]];
[self.timer event:^{ if (self.transformState == NO) { self.transformState = YES;
[self transformStateEvent]; } else { self.transformState = NO;
[self normalStateEvent];
} } timeIntervalWithSecs:.f delaySecs:.f];
[self.timer start];
} - (void)transformStateEvent { // 初始化3D变换,获取默认值
CATransform3D perspectiveTransform = CATransform3DIdentity; // 透视
perspectiveTransform.m34 = -1.0/500.0; // 位移
perspectiveTransform = CATransform3DTranslate(perspectiveTransform, , -, ); // 空间旋转
perspectiveTransform = CATransform3DRotate(perspectiveTransform, [Math radianFromDegree:], 0.75, , -0.5); // 缩放变换
perspectiveTransform = CATransform3DScale(perspectiveTransform, 0.75, 0.75, 0.75); self.layer.transform = perspectiveTransform;
self.layer.speed = 0.5;
} - (void)normalStateEvent { // 初始化3D变换,获取默认值
CATransform3D perspectiveTransform = CATransform3DIdentity; self.layer.transform = perspectiveTransform;
self.layer.speed = 0.5;
} @end

细节

CATransform3D的m34值动画的更多相关文章

  1. CATransform3D的m34使用

    CATransform3D的m34使用 效果图 源码 // // ViewController.m // StarWars // // Created by YouXianMing on 15/11/ ...

  2. CATransform3D中m34字段的取值含义

    转载自:http://zhidao.baidu.com/link?url=OlVQoGOKIBmaXKgQisOLtzliTLPvreOOsRmny3yebA1Wb6-B3KtuKlRXmv0tO3y ...

  3. tweenMax+如何让数字由初始值动画到结束的值

    html: <div class="wz1">0</div> css: .wz1{ width: 114px; height: 30px; position ...

  4. iOS动画 三维透视投影 m34

    transform的结构如下:struct CATransform3D{  CGFloat m11, m12, m13, m14;  CGFloat m21, m22, m23, m24;  CGFl ...

  5. CATransform3D

    本章介绍图层的几何组成部分,及他们之间的相互关,同时介绍如何变换矩阵可以产生复杂的视觉效果. 1.1 图层的坐标系 图层的坐标系在不同平台上面具有差异性.在iOS系统中,默认的坐标系统原点在图层的中心 ...

  6. 核心动画——Core Animation

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

  7. iOS开发——UI进阶篇(十七)CALayer,核心动画基本使用

    一.CALayer简介 1.CALayer在iOS中,文本输入框.一个图标等等,这些都是UIView你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个其实UIView之所以 ...

  8. 【原】iOS学习44之动画

    1. 简单动画 1> UIImageView GIF 动画 GIF图的原理是:获取图片,存储在图片数组中,按照图片数组的顺序将图片以一定的速度播放 UIImageView *showGifima ...

  9. CGAffineTransform与CATransform3D

    CGAffineTransform 1.CG的前缀告诉我们,CGAffineTransform类型属于Core Graphics框架,Core Graphics实际上是一个严格意义上的2D绘图API, ...

随机推荐

  1. NOIP2018初赛 解题报告(C++普及)

    第24届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 竞赛时间:2018 年 10 月 13 日 14:30~16:30 选手注意: 1.试题纸共有 7 页,答题纸共有 2 页,满分 100 ...

  2. SQL技巧两则:选择一个表的字段插入另一个表,根据其它表的字段更新本表内容

    最近,在作django数据表迁移时用到的. 因为在django中,我把本来一个字符型字段,更改成了外键, 于是,哦喝~~~字符型字段相当于被删除了, 为了能导入这些字段的外键信息,于是出此下策. 其实 ...

  3. Elasticsearch环境准备(一)

    一.ELKStack简介 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details ELK Stack包含:Elasti ...

  4. ubuntu16.04 删除内核

    一.背景 今天开机输入密码后,Ubuntu就卡在左下角有“Ubuntu 16.04 LTS”字样的那个界面,鼠标可以移动,但无法进入桌面.考虑到这个问题可能是因为ubuntu的自动更新造成的,于是重新 ...

  5. Python 中的函数

    学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ...

  6. 美团外卖Android Crash治理之路

    Crash率是衡量一个App好坏的重要指标之一,如果你忽略了它的存在,它就会愈演愈烈,最后造成大量用户的流失,进而给公司带来无法估量的损失.本文讲述美团外卖Android客户端团队在将App的Cras ...

  7. <泛> STL - stack 模拟实现

    今天,看C++Template的时候看到那人写了一个Stack,于是乎,手痒,自己也写了一个,在拜读了STD文件和C++模板元编程某些小节之后,你们就看到了这篇代码. 经过上述一番经历之后,我重新写了 ...

  8. [转载] 你所不知道的TIME_WAIT和CLOSE_WAIT

    前言 本文转载自 https://mp.weixin.qq.com/s/FrEfx_Yvv0fkLG97dMSTqw.很久前看到Vincent Bernat在博客中写了一遍关于TCP time-wai ...

  9. Java与GIS的联系

    Java与GIS的联系 地理信息系统是70年代初发展起来的一门新兴的边缘学科.    由于GIS在数据采集与输入.空间数据管理.地图提取.自动制图.数字地形分析.数据输出等方面具有强大而又独特的功能  ...

  10. hdu 2266 dfs

    题意:在数字之间添加运算符号,使得结果等于题目中要求的Sample Input123456789 321 1Sample Output181 这题虽然看起来比较简单,但是之前和差的状态不太好表示,因此 ...