如何在 Swift3 中使用可选动画实现函数



我想在 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()
    }
}

最新更新