我已经成功创建了一个UIActivityIndicatorView
扩展,用于启动和停止animating
。然而,我想通过使用bool类型的computed property
,使用get
和set
,使其变得更好。我试过了,但想不出怎么做。我怎么能重构它呢。
extension UIActivityIndicatorView {
func loadingIndicator(_ isLoading: Bool) {
if isLoading {
self.startAnimating()
} else {
self.stopAnimating()
}
}
}
您可以使用UIActivityIndicatorView
的isAnimating
属性作为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()
}
}
}