Próbuję zrobić wskaźnik aktywności za pomocą szybkich, ale jest coś mi brakujeWskaźnik aktywności w Swift
Oto kod Przycisk aktywność start:
Indicator = ActivityIndicator().StartActivityIndicator(ViewController());
A oto kod przycisk aktywność przystanek
ActivityIndicator().StopActivityIndicator(ViewController(),indicator: Indicator);
i kod dla klasy wskaźnik aktywności jest
class ActivityIndicator: NSObject {
var myActivityIndicator:UIActivityIndicatorView!
func StartActivityIndicator(obj:UIViewController) -> UIActivityIndicatorView
{
self.myActivityIndicator = UIActivityIndicatorView(frame:CGRectMake(100, 100, 100, 100)) as UIActivityIndicatorView;
self.myActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
self.myActivityIndicator.center = obj.view.center;
obj.view.addSubview(myActivityIndicator);
self.myActivityIndicator.startAnimating();
return self.myActivityIndicator;
}
func StopActivityIndicator(obj:UIViewController,indicator:UIActivityIndicatorView)-> Void
{
indicator.removeFromSuperview();
}
}
Dzięki problem rozwiązany
gdy piszę kod wiem, że czas, że muszę zdać siebie w funkcji ale w tym czasie nie wiedziałem co typ własnym przedstawieniu więc II nie mogę odbierać, dopóki nie poznam typu, wtedy zdecyduję się spróbować uzyskać inny typ (UIView, UIActivityIndicatorView, UIViewController), a następnie stwierdziłem, że powinien on być być UIViewController, ale zapomniałem, że powinno być przekazać z siebie i Szukam za co przejść w funkcji wywoływania i myślałem, że l et's spróbuj UIViewController i nie dał mi błędu, więc pomyślałem, że to prawda , ale kiedy to nie działa, myślałem, że jestem wystarczająco blisko, więc lepiej , aby zapytać eksperta o problem. A jak się spodziewałem problem jest rozwiązany w ciągu kilku minut
Swift 3 wersja
class ActivityIndicator: NSObject {
var myActivityIndicator:UIActivityIndicatorView!
func StartActivityIndicator(obj:UIViewController) -> UIActivityIndicatorView
{
self.myActivityIndicator = UIActivityIndicatorView(frame:CGRect(x: 100, y: 100, width: 100, height: 100)) as UIActivityIndicatorView
self.myActivityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
self.myActivityIndicator.center = obj.view.center;
obj.view.addSubview(myActivityIndicator);
self.myActivityIndicator.startAnimating();
return self.myActivityIndicator;
}
func StopActivityIndicator(obj:UIViewController,indicator:UIActivityIndicatorView)-> Void
{
indicator.removeFromSuperview();
}
}
Gdy wywołujesz 'StopActivityIndicator()" (przy okazji powinieneś zaczynać od Lowe case), wywołujesz go na nowej instancji zamiast instancji zwróconej przez funkcję startową – Paulw11
Brak jej wielkich liter s i Odpowiadam, że tak, ale czy w takim przypadku problem z zatrzymaniem wskaźnika nie powinien być właściwy? –
Górna/mała litera s to po prostu konwencja - klasy zaczynają się od kapitału, funkcje i zmienne zaczynają się od małej litery. Problem polega na tym, że zatrzymujesz nową instancję zamiast instancji, którą uruchomiłeś. Musisz zapisać obiekt od połączenia początkowego i wywołać przystanek na tej instancji – Paulw11