Create UIActivityIndicator 如何从扩展中的函数计算 属性
How Create UIActivityIndicator computed property from a function in extension
我已经成功地创建了一个 UIActivityIndicatorView
扩展,用于 animating
它的启动和停止。但是我想通过使用 get
和 set
来使用 bool 类型的 computed property
来让它变得更好。我试过但想不出办法。我怎么能重构这个。
extension UIActivityIndicatorView {
func loadingIndicator(_ isLoading: Bool) {
if isLoading {
self.startAnimating()
} else {
self.stopAnimating()
}
}
}
您可以使用 UIActivityIndicatorView
的 isAnimating
属性 作为 isLoading
的支持值。您只需要确保在 setter 中正确控制 starting/stopping 动画,这将设置 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()
}
}
}
我已经成功地创建了一个 UIActivityIndicatorView
扩展,用于 animating
它的启动和停止。但是我想通过使用 get
和 set
来使用 bool 类型的 computed property
来让它变得更好。我试过但想不出办法。我怎么能重构这个。
extension UIActivityIndicatorView {
func loadingIndicator(_ isLoading: Bool) {
if isLoading {
self.startAnimating()
} else {
self.stopAnimating()
}
}
}
您可以使用 UIActivityIndicatorView
的 isAnimating
属性 作为 isLoading
的支持值。您只需要确保在 setter 中正确控制 starting/stopping 动画,这将设置 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()
}
}
}