LucidAnimationsSwift 1.0.4

LucidAnimationsSwift 1.0.4

Chandan Karmakar 维护。



  • Chandan Karmakar

Lucid Animations swift

用 Swift 编写无杂乱的动画代码

Build Status

使用说明

lucid 用作 sharedInstance 或 let lucid = LucidAnim()

 

示例 1:多视图动画

alt tag

override func viewDidLoad() {
    super.viewDidLoad()
    stackView.arrangedSubviews.forEach({ $0.transform = .init(translationX: 100, y: 0) })
    
    let lucid = LucidAnim()
    lucid.set(duration: 2.0).anim { self.stackView.arrangedSubviews[0].transform = .identity }
    lucid.set(delay: 3.0).set(duration: 0.7).set(bounce: true).serially(count: stackView.arrangedSubviews.count, interval: 0.2) { i in
        self.stackView.arrangedSubviews[i].transform = .identity
    }
    lucid.execute()
}

示例 2:链式动画

alt tag

@IBAction func actionButton() {
    let lucid = LucidAnim()
    if box.isHidden {
        lucid.flat { self.box.isHidden = false }
        lucid.anim { self.view.layoutIfNeeded() }
        lucid.set(bounce: true).set(duration: 1.0).anim { self.box.alpha = 1; self.box.transform = .identity }
        lucid.execute()
    } else {
        lucid.set(duration: 2.1).anim { self.box.alpha = 0; self.box.transform = .init(translationX: 200, y: 0) }
        lucid.flat { self.box.isHidden = true }
        lucid.anim { self.view.layoutIfNeeded() }
        lucid.execute()
    }
}

示例 2:保持清晰对象

alt tag

lazy var rotateAnim: LucidAnim = {
    let rotateAnim = LucidAnim()
    rotateAnim.set(duration: 0.5).anim { self.box2.transform = .init(rotationAngle: -CGFloat.pi / 4) }
    rotateAnim.set(duration: 0.5).anim { self.box2.transform = .init(rotationAngle: CGFloat.pi) }
    rotateAnim.set(duration: 0.5).anim { self.box2.layer.cornerRadius = self.box2.bounds.height / 2 }
    rotateAnim.set(duration: 0.5).anim { self.box2.layer.cornerRadius = 0 }
    return rotateAnim
}()

@IBAction func actionAnimation2() {
    rotateAnim.execute()
}

安装

Cocoapods

在您的 Podfile 中添加 pod 'LucidAnimationsSwift' 然后在终端运行 pod install 然后 在您的 Swift 文件中添加 import LucidAnimationsSwift

手动

LucidAnimationsSwift.swift 文件拖拽到您的项目中