我想在 Swift 3 中实现一个函数,它可以更改 UI 中的某些内容。我想向此函数添加一个参数,以决定此更改是否带有/不带动画。
我的职能:
func doSomeChanges(animated: Bool) {
if animated {
UIView.animate(withDuration: 0.25) {
//UI changes
}
}
else {
//UI changes
}
}
我的第一个是使用 Swift 的内部函数功能:
func doSomeChanges(animated: Bool) {
func uiChanges() {
//UI changes
}
if animated {
UIView.animate(withDuration: 0.25) {
uiChanges()
}
}
else {
uiChanges()
}
}
第二个是将持续时间设置为 0.0,但我不知道这是一个好的做法:
func doSomeChanges(animated: Bool) {
UIView.animate(withDuration: animated ? 0.25 : 0.0) {
//UI changes
}
}
应该如何正确完成此操作?
您可以通过创建如下所示的代码块来避免该函数:
func doSomeChanges(animated: Bool) {
let block = {
// UI Changes
}
if animated {
UIView.animate(withDuration: 0.25) {
block()
}
} else {
block()
}
}