如何通过扩展中的函数创建UIActivityIndi​​cator计算属性

时间:2018-11-12 16:41:54

标签: ios swift uiactivityindicatorview uiactivity

我设法创建了一个UIActivityIndicatorView扩展名,用于将其animating旋转为开始和停止。但是,我想通过使用computed propertyget使用bool类型的set使其更好。我已经尝试过,但是想不出办法。我该如何重构。

extension UIActivityIndicatorView {
    func loadingIndicator(_ isLoading: Bool) {
        if isLoading {
            self.startAnimating()
        } else {
            self.stopAnimating()
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您可以将isAnimating的{​​{1}}属性用作UIActivityIndicatorView的备用值。您只需要确保可以在设置器中正确控制动画的开始/停止,就可以设置isLoading,结果isAnimating也可以正确设置。

isLoading

答案 1 :(得分:1)

您可以通过以下方式优化代码:

extension UIActivityIndicatorView {
    var isLoading:Bool {
        get {
            return isAnimating
        } set {
            newValue ? startAnimating() : stopAnimating()
        }
    }
}