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 UIKit

class 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
    }
}
时间: 2024-10-10 23:18:10

Swift - transform.m34动画示例的相关文章

【补间动画示例】

代码中定义动画示例 public class MainActivity extends ListActivity { private ImageView iv; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] array = { "alpha", "trans", "scale", "rot

Swift 表视图动画教程: Drop-In Cards

http://www.raywenderlich.com/76024/swift-table-view-animations-tutorial-drop-cards 标准 table view 是一个强大而又灵活的数据呈现方式:大部分情况下你的app 都使用了某种形式的 table view.但是,它有一个缺点就是,无法进行太多的定制,你的 app 会淹没在成千上万的类似是 app 中. 为了不使用千篇一律的 table view,我们可以利用某些动画以便使你的app 更加耀眼.看一下 Goog

css3 2D转换(2D Transform) 动画(Animation)

transform 版本:CSS3 内核类型 写法 Webkit(Chrome/Safari) -webkit-transform Gecko(Firefox) -moz-transform Presto(Opera) -o-transform Trident(IE) -ms-transform W3C transform none:无转换 matrix(<number>,<number>,<number>,<number>,<number>,&

[deviceone开发]-直播APP心形点赞动画示例

一.简介 这个示例展示do_Animator组件的简单使用,通过点击"点赞"按钮,不断弹出心形图片,向上动画漂移到顶部消失.间隔时间和上下左右移动的步长都是一定范围的随机值. 二.效果图 三.相关下载 https://github.com/do-project/code4do/tree/master/my_heart 四.相关讨论 http://bbs.deviceone.net/forum.php?mod=viewthread&tid=308 五.更多案例 http://so

[deviceone开发]-do_FrameAnimtionView的简单动画示例

一.简介 do_FrameAnimtionView组件是用加载GIF动态图片和加载一系列图片形成动画效果的展示组件,这个示例直观的展示组件基本的使用方式.适合初学者. 二.效果图 三.相关下载 https://github.com/do-project/code4do/tree/master/do_FrameAnimationView 四.相关讨论 http://bbs.deviceone.net/forum.php?mod=viewthread&tid=113 五.更多案例 http://so

[deviceone开发]-动画示例源码

一.简介 do_FrameAnimtionView组件是用加载GIF动态图片和加载一系列图片形成动画效果的展示组件,这个示例直观的展示组件基本的使用方式.适合初学者. 二.效果图 三.相关讨论 http://bbs.deviceone.net/forum.php?mod=viewthread&tid=113 四.源码地址 https://github.com/do-project/code4do/tree/master/do_FrameAnimationView 五.更多案例源码 http://

swift - 歌曲列表动画

// //  ViewController.swift //  songAnimation // //  Created by su on 15/12/10. //  Copyright © 2015年 tian. All rights reserved. // import UIKit class ViewController: UIViewController { override func viewDidLoad() {        super.viewDidLoad()       

[deviceone开发]-心形点赞动画示例

一.简介 这个示例展示do_Animator组件的简单使用,通过点击"点赞"按钮,不断弹出心形图片,向上动画漂移到顶部消失.间隔时间和上下左右移动的步长都是一定范围的随机值.二.效果图 三.相关下载 https://github.com/do-project/code4do/tree/master/my_heart四.相关讨论 http://bbs.deviceone.net/forum.php?mod=viewthread&tid=308五.更多案例http://source

css3 transform常见动画

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-T