Swift,swiftcode

來源:互聯網
上載者:User

Swift,swiftcode

Swift - transform.m34動畫樣本

 

效果

 

源碼

https://github.com/YouXianMing/Swift-Animations

////  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    }}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.