博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift - transform.m34动画示例
阅读量:6584 次
发布时间:2019-06-24

本文共 2275 字,大约阅读时间需要 7 分钟。

Swift - transform.m34动画示例

 

效果

 

源码

////  CATransform3DM34Controller.swift//  Swift-Animations////  Created by YouXianMing on 16/8/19.//  Copyright © 2016年 YouXianMing. All rights reserved.//import UIKitclass CATransform3DM34Controller: NormalTitleViewController {    var layer          : CALayer!    var timer          : GCDTimer!    var transformState : Bool! = false        override func setup() {                super.setup()                initLayer()                timerEvent()    }        func initLayer() {                let image         = UIImage(named: "1")        layer             = CALayer()        layer.frame       = CGRectMake(0, 0, image!.size.width / 2, image!.size.height / 2)        layer.position    = (contentView?.middlePoint)!        layer.borderWidth = 4        layer.borderColor = UIColor.blackColor().CGColor        layer.contents    = image?.CGImage        contentView?.layer.addSublayer(layer)    }        func timerEvent() {                weak var wself = self        timer = GCDTimer(inQueue: GCDQueue.mainQueue)        timer.event({                        if wself?.transformState == false {                            wself?.transformState = true                wself?.transformStateEvent()                            } else {                            wself?.transformState = false                wself?.normalStateEvent()            }                        }, timeIntervalWithSeconds: 2.0, delayWithSeconds: 1.0)        timer.start()    }    func transformStateEvent() {                var perspectiveTransform = CATransform3DIdentity        perspectiveTransform.m34 = -(1.0 / 500.0)        perspectiveTransform     = CATransform3DTranslate(perspectiveTransform, 30, -35, 0)        perspectiveTransform     = CATransform3DRotate(perspectiveTransform, Math.RadianFromDegree(30), 0.75, 1, -0.5)        perspectiveTransform     = CATransform3DScale(perspectiveTransform, 0.75, 0.75, 0.75)                layer.transform              = perspectiveTransform        layer.allowsEdgeAntialiasing = true        layer.speed                  = 0.5    }        func normalStateEvent() {                let perspectiveTransform = CATransform3DIdentity        layer.transform          = perspectiveTransform        layer.speed              = 0.5    }}

 

转载地址:http://kzano.baihongyu.com/

你可能感兴趣的文章
运筹学上机实验 - 单纯形方法的两阶段法
查看>>
文件状态是否变化
查看>>
MongoDB的副本集Replica Set
查看>>
Maven项目中的配置文件找不到以及打包问题
查看>>
面向对象
查看>>
HDU 1058 Humble Numbers
查看>>
wps10.1中将txt转为excel
查看>>
解决执行脚本报syntax error: unexpected end of file或syntax error near unexpected token `fi'错误的问题...
查看>>
[BZOJ3312][USACO]不找零(状压DP)
查看>>
gtp转换mbr
查看>>
django rest framework
查看>>
poj1985 求树的直径
查看>>
Python PyPI中国镜像
查看>>
centos 设置静态IP
查看>>
[Angularjs]系列——学习与实践
查看>>
js -- canvas img 封装
查看>>
适配器模式(数据库方面)支持不同的数据库连接
查看>>
CF456B Fedya and Maths 找规律
查看>>
转载:Beginning WF 4.0翻译——第三章(流程图工作流)
查看>>
mysql alter table
查看>>