Ios 如何在Swift3中使用可选动画实现功能
我想在Swift 3中实现一个函数,它可以改变UI中的某些内容。我想向该函数添加一个参数,以决定此更改是否适用于动画 我的职能:Ios 如何在Swift3中使用可选动画实现功能,ios,swift,design-patterns,swift3,Ios,Swift,Design Patterns,Swift3,我想在Swift 3中实现一个函数,它可以改变UI中的某些内容。我想向该函数添加一个参数,以决定此更改是否适用于动画 我的职能: func doSomeChanges(animated: Bool) { if animated { UIView.animate(withDuration: 0.25) { //UI changes } } else { //UI changes } } 我的第
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()
}
}
这个解决方案与内部函数非常相似。它确实非常相似。我只是展示了我将使用的方法,并指出了我将使用的方法。我倾向于喜欢块版本,因为如果需求发生变化,可以很容易地将其传递到函数中。