Create UIActivityIndicator如何从扩展中的函数计算属性



我已经成功创建了一个UIActivityIndicatorView扩展,用于启动和停止animating。然而,我想通过使用bool类型的computed property,使用getset,使其变得更好。我试过了,但想不出怎么做。我怎么能重构它呢。

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

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

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

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

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

最新更新