欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Swift,swiftcode

来源: 开发者 投稿于  被查看 45194 次 评论:36

Swift,swiftcode


Swift - RotateView

 

效果

 

源码

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

//
//  RotateView.swift
//  Swift-Animations
//
//  Created by YouXianMing on 16/8/14.
//  Copyright © 2016年 YouXianMing. All rights reserved.
//

import UIKit

// MARK: Public class : RotateView

class RotateView: UIView {

    // MARK: Properties.
    
    var rotateDuration : NSTimeInterval = 0.25
    
    // MARK: Animation method.
    
    func changeToUpAnimated(animated : Bool) {
        
        UIView.animateWithDuration((animated == true ? self.rotateDuration : 0.0)) {
            
            self.transform = self.defaultTransform
        }
    }
    
    func changeToLeftAnimated(animated : Bool) {
        
        UIView.animateWithDuration((animated == true ? self.rotateDuration : 0.0)) {
            
            self.transform = CGAffineTransformRotate(self.defaultTransform, CGFloat(-M_PI_2))
        }
    }
    
    func changeToRightAnimated(animated : Bool) {
        
        UIView.animateWithDuration((animated == true ? self.rotateDuration : 0.0)) {
            
            self.transform = CGAffineTransformRotate(self.defaultTransform, CGFloat(M_PI_2))
        }
    }
    
    func changeToDownAnimated(animated : Bool) {
        
        UIView.animateWithDuration((animated == true ? self.rotateDuration : 0.0)) {
            
            self.transform = CGAffineTransformRotate(self.defaultTransform, CGFloat(M_PI))
        }
    }
    
    // MARK: Private value & func & system method.
    
    private var defaultTransform : CGAffineTransform!
    
    override init(frame: CGRect) {
        
        super.init(frame : frame)
        defaultTransform = self.transform
    }
    
    required init?(coder aDecoder: NSCoder) {
        
        fatalError("init(coder:) has not been implemented")
    }
}

 

用户评论