Lucid Animations swift
用 Swift 编写无杂乱的动画代码
使用说明
lucid
用作 sharedInstance 或 let lucid = LucidAnim()
将
示例 1:多视图动画
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:链式动画
@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:保持清晰对象
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
文件拖拽到您的项目中