提供一些辅助工具,用于为常见的 UIKit 操作添加动画效果,例如设置文本
这个库提供了一些辅助函数,可以方便地为常见的 UIKit 操作添加动画效果,例如设置文本和图像。
view.performTransition() 方法会对视图从一个状态到另一个状态执行交叉淡入淡出动画。
view.performTransitionIfNeeded() 方法与之类似,但只有当 animated 参数为 true 时才会执行动画。
UIView.performAnimationsIfNeeded() 方法仅在 animated 参数为 true 时,才会对更改应用动画效果。
view.shake() 方法会抖动视图,通常用于指示错误。
view.shakeWithHapticErrorFeedback() 方法与之类似,但带有触觉错误反馈。
示例
view.performTransition {
// update some complex view here, changes will crossfade
}
view.performTransitionIfNeeded(animated: true) {
// update some complex view here, changes will crossfade
}
// indicates an error by shaking a textfield
inputTextField.shakeWithHapticErrorFeedback {
inputTextField.becomeFirstResponder()
}
setImage(_:animated:) 方法会设置新的图像,并在 animated 为 true 时使用交叉淡入淡出过渡动画。setImage(_:tintColor:animated) 方法与之类似,但带有 tintColor 参数。示例
imageView.setImage(UIImage(systemNamed: "gearshape"), tintColor: .red, animated: true)
setText(_: animated:) 方法会设置新的文本,并在 animated 为 true 时使用交叉淡入淡出过渡动画。setAttributedText(_:animated:) 方法与之类似,但用于 attributed text (富文本)。setText(_:textColor:animated:) 方法与之类似,但用于文本和颜色。setTextColor(_:animated:) 方法与之类似,但仅用于文本颜色。示例
label.setText("New text", animated: true)
textView.setAttributedText(newAttributedText, animated: true)
switchRootViewController() 方法会更改根视图控制器,如果需要,可以使用交叉淡入淡出动画。示例
window.setRootViewController(newViewController, animated: true)
DisplayLink 是 CADisplayLink 的一个小型封装,它使用 block 回调,并在 display link 被释放时停止它。
示例
var displayLink = DisplayLink.started {
print("frame")
}
DispatchQueue.main.asyncAfter(.now() + 1) {
displayLink = nil
}