• Swift


    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
        }
    }
  • 相关阅读:
    AX7 VM can not starting
    AX3空Invoice明细问题
    Solution to “VirtualBox can't operate in VMX root mode” error in Windows 7
    Inventory of the materials to teach you how to query a date certain combination of dimensions
    How to Debug Enterprise Portal Code in Dynamics AX 2009
    Axapta 3 COM Connector
    AX 与Citrix打印机问题
    AX ERP 真正的自动批处理
    SQL语句转摘
    D365: Table, Form, Class to extension
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5787369.html
Copyright © 2020-2023  润新知