美文网首页swift
swift4.0 CAKeyframeAnimation,抖动动

swift4.0 CAKeyframeAnimation,抖动动

作者: 小曼blog | 来源:发表于2018-05-24 11:02 被阅读9次

demo地址: https://github.com/weiman152/CAKeyframeAnimationDemo
继上一篇之后,这一篇我们来介绍使用CAKeyframeAnimation来实现简单的抖动动画。
看效果:

抖动.gif

这算是CAKeyframeAnimation的基本用法,所以不需要分析如何实现的,大家看代码就明白。

实现代码:

//
//  ThirdViewController.swift
//  关键帧动画CAKeyframeAnimation
//
//  Created by iOS on 2018/5/22.
//  Copyright © 2018年 weiman. All rights reserved.
//

import UIKit

class ThirdViewController: UIViewController {

    @IBOutlet weak var orangeView: UIView!
    @IBOutlet weak var greenView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // 设置这个属性,会改变greenView的原始frame
        greenView.layer.anchorPoint = CGPoint.zero
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    @IBAction func start(_ sender: UIButton) {
        animation()
        animationTopLeft()
    }
    
    /// 按照中心点抖动
    func animation() {
        
        let animati = CAKeyframeAnimation(keyPath: "transform.rotation")
        // rotation 旋转,需要添加弧度值
        // 角度转弧度
        animati.values = [angle2Radion(angle: -50), angle2Radion(angle: 50), angle2Radion(angle: -50)]
        animati.repeatCount = MAXFLOAT
        
        orangeView.layer.add(animati, forKey: nil)
    }
    
    /// 按照左上角抖动
    func animationTopLeft() {
        let animati = CAKeyframeAnimation(keyPath: "transform.rotation")
        // rotation 旋转,需要添加弧度值
        // 角度转弧度
        animati.values = [angle2Radion(angle: -100), angle2Radion(angle: 50), angle2Radion(angle: -50)]
        animati.repeatCount = MAXFLOAT
        
        greenView.layer.add(animati, forKey: nil)
    }
    
    func angle2Radion(angle: Float) -> Float {
        return angle / Float(180.0 * Double.pi)
    }


}

祝开心,😁😁😁

相关文章

网友评论

    本文标题:swift4.0 CAKeyframeAnimation,抖动动

    本文链接:https://www.haomeiwen.com/subject/mnwjjftx.html