Aktivitätsanzeige in vielen VC verwenden, ohne Code zu duplizieren swift
Ich habe zweiViewControllers
(A und B) in schnellen IOS. Sowohl A als auch B laden Daten aus dem Internet (separat). Ich möchte @ anzeigactivityIndicator
beim Laden. Ich weiß, dass ich es schlecht machen kann, indem ich es einmal in jeder VC wie folgt deklariere:
ViewController A
var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
func activityIndicatorBegin() {
activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0,0,50,50))
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
disableUserInteraction()
greyView = UIView()
greyView.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
greyView.backgroundColor = UIColor.blackColor()
greyView.alpha = 0.5
self.view.addSubview(greyView)
}
func activityIndicatorEnd() {
self.activityIndicator.stopAnimating()
enableUserInteraction()
self.greyView.removeFromSuperview()
}
und machen Sie dasselbe für ViewController B und rufen Sie die in ViewController B deklarierten Funktionen activityIndicatorBegin und activityIndicatorEnd auf. Ich möchte den Code jedoch übersichtlicher gestalten. Wie könnte es gemacht werden? Ich versuche in diesen Tagen, den Code sauberer zu machen.
Vielen Dank
--AKTUALISIEREN-
Ich würde so etwas wie den folgenden Code machen. Aber das tut es nicht, weil ich keine Variablen in den Erweiterungen deklarieren kann
var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
extension UIViewController {
func activityIndicatorBegin() {
activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0,0,50,50))
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
disableUserInteraction()
greyView = UIView()
greyView.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
greyView.backgroundColor = UIColor.blackColor()
greyView.alpha = 0.5
self.view.addSubview(greyView)
}
func activityIndicatorEnd() {
self.activityIndicator.stopAnimating()
enableUserInteraction()
self.greyView.removeFromSuperview()
}
}