• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift-transform.m34动画示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap