Piszę aplikację na iOS i muszę wyświetlić UIAlertView za pomocą pokrętła. Czasami coś jest nie tak, gdy próbuję dodać spinner w centrum alertu, zwykle gdy pojawił się inny alert tuż przed tym (niekoniecznie reguła, ale tak zauważyłem, że się nie udało).UIActivityIndicatorView nie wyświetla się poprawnie na UIAlertView
Częściowo rozwiązałem ten błąd, opóźniając tworzenie przędzarki. Oto jak to zrobić (alert jest członkiem UIAlertView):
Ten kod jest w viewDidLoad:
alert = [[[UIAlertView alloc] initWithTitle:@"Loading..." message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
[alert show];
[self performSelector:@selector(addSpinner) withObject:nil afterDelay:0.5f];
I to jest moim addSpinner funkcja:
- (void) addSpinner{
UIActivityIndicatorView *indicator2 = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
indicator2.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height - 50);
[indicator2 startAnimating];
[alert addSubview:indicator2];
[indicator2 release];
}
To rozwiązanie działa za każdym razem, ale naprawdę nie podoba mi się, jak to się robi. Nawet pokazanie spinnera pół sekundy po pojawieniu się alarmu nie jest tak niepokojące, musi być lepszy sposób na poradzenie sobie z tym. Nie jestem ekspertem od iOS, ani nie jestem starszym programistą, ale czy nie mogę skorzystać z wydarzenia? Coś takiego jak "kiedy alert jest rzeczywiście wyświetlany, przejdź do funkcji addSpinner"? Nie mam pojęcia, jak to zrobić i nie mogłem znaleźć zbytniej pomocy w Internecie ...
Mam nadzieję, że ktoś może mi pomóc! Dzięki.
Dzięki temu wygląda całkiem nieźle, mogę spróbować go użyć. Nie mogę oznaczyć twojej odpowiedzi jako mojej "zaakceptowanej odpowiedzi", ponieważ to naprawdę nie rozwiązuje problemu :) – rdurand
żadnych problemów :) .. możesz po prostu oddać głos, jeśli to było pomocne :) – waheeda
Dodałem trochę kod, aby rozwiązać twój problem, mam nadzieję, że to pomoże. – waheeda