提供一些辅助工具,用于为常见的 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
}