我已经创建了一个UIActivityIndicatorView扩展,用于将animating它转到开始和停止位置。不过,我希望通过使用bool类型的computed property使用getset使其更好。我试过了,但想不出办法。我怎么能重构这个。

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

最佳答案

您可以使用isAnimatingUIActivityIndicatorView属性作为isLoading的备份值。您只需要确保在setter中正确控制动画的启动/停止,这将设置isAnimating,因此,isLoading也将正确设置。

extension UIActivityIndicatorView {
    var isLoading:Bool {
        get {
            return isAnimating
        } set {
            if newValue {
                self.startAnimating()
            } else {
                self.stopAnimating()
            }
        }
    }
}

关于ios - 如何通过扩展中的函数创建UIActivityIndi​​cator计算属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53266526/

10-10 21:08