Chcę wyświetlić widok alertu z komunikatem: "Ładowanie danych" i wskaźnik aktywności wirowania. Jak mogę to zrobić?Jak wyświetlić widok alertu ze wskaźnikiem aktywności?
Odpowiedz
możesz dodać etykietę i wskaźnik aktywności jako podglądy widoku alertu. trzeba zrobić coś takiego
myAlertView = [[UIAlertView alloc] initWithTitle:@"Loading" message:@"\n\n"
delegate:self
cancelButtonTitle:@""
otherButtonTitles:@"OK", nil];
UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
loading.frame=CGRectMake(150, 150, 16, 16);
[myAlertView addSubview:loading];
[myAlertView show];
..better do korzystania z UIActionSheet w tej sytuacji ...
UWAGA: To rozwiązanie nie będzie działać na systemie iOS 7 i nowszych.
To jest moje zdanie na jej temat:
alertView = [[UIAlertView alloc] initWithTitle:@"Submitting Entry"
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5); // .5 so it doesn't blur
[alertView addSubview:spinner];
[spinner startAnimating];
[alertView show];
i odwołuje w kodzie za pomocą:
[alertView dismissWithClickedButtonIndex:0 animated:YES];
użyj 'spinner.center = CGPointMake (0.0, -spinner.frame.size.height); spinner.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 'aby zawsze ustawiać pokrętło w dolnej środkowej części ostrzeżenia, – MrTJ
pokrętło się nie pokazuje. Mój alterView pokazuje tylko Zgłaszanie wpisu. Używam iOS 7. – coolcool1994
@ coolcool1994 To nie zostało przetestowane na iOS 7.Odpowiedź od 2 lat temu;) – jowie
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alarm" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
loading.frame=CGRectMake(125, 50, 36, 36);
[loading startAnimating];
[alert addSubview:loading];
[alert show];
można dodać etykietę i activityindicator jako subviews swojego alertu widzenia. trzeba zrobić coś takiego ...
- (IBAction)showAlertWithActivity:(id)sender{
alerta = [[UIAlertView alloc] initWithTitle:@"Guardando datos..."
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5); // .5 so it doesn't blur
[alerta addSubview:spinner];
[spinner startAnimating];
[alerta show];
[self performSelector:@selector(close) withObject:self afterDelay:1];
}
-(void)close{
[alerta dismissWithClickedButtonIndex:0 animated:YES];
}
Dzięki za twój wpis – SampathKumar
Dodaj ten w pliku .h UIAlertView *connectingAlert;
I Dodaj te dwie funkcje w plikach .m
//show loading activity.
- (void)startSpinner:(NSString *)message {
// Purchasing Spinner.
if (!connectingAlert) {
connectingAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(message,@"")
message:nil
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
connectingAlert.tag = (NSUInteger)300;
[connectingAlert show];
UIActivityIndicatorView *connectingIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
connectingIndicator.frame = CGRectMake(139.0f-18.0f,50.0f,37.0f,37.0f);
[connectingAlert addSubview:connectingIndicator];
[connectingIndicator startAnimating];
}
}
//hide loading activity.
- (void)stopSpinner {
if (connectingAlert) {
[connectingAlert dismissWithClickedButtonIndex:0 animated:YES];
connectingAlert = nil;
}
// [self performSelector:@selector(showBadNews:) withObject:error afterDelay:0.1];
}
następnie zadzwonić
[self startSpinner:@"Your message........"];
[self stopSpinner];
To działa na iOS 7
addSubView nie działa na UIAlertView w systemie iOS 7 i nowszych wersjach. Spróbuj tego zamiast
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Loading data" message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles: nil];
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[indicator startAnimating];
[alertView setValue:indicator forKey:@"accessoryView"];
[alertView show];
i odrzucić go
[alertView dismissWithClickedButtonIndex:0 animated:YES];
To jest rozwiązanie, które działa na iOS 7 (Do tego komentarza bieżąca data). – OhadM
w Swift 3
let loadingAlertController = UIAlertController(title: "Loading", message: nil, preferredStyle: .alert)
let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)
activityIndicator.translatesAutoresizingMaskIntoConstraints = false
loadingAlertController.view.addSubview(activityIndicator)
let xConstraint = NSLayoutConstraint(item: activityIndicator, attribute: .centerX, relatedBy: .equal, toItem: loadingAlertController.view, attribute: .centerX, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint(item: activityIndicator, attribute: .centerY, relatedBy: .equal, toItem: loadingAlertController.view, attribute: .centerY, multiplier: 1.4, constant: 0)
NSLayoutConstraint.activate([ xConstraint, yConstraint])
activityIndicator.isUserInteractionEnabled = false
activityIndicator.startAnimating()
let height: NSLayoutConstraint = NSLayoutConstraint(item: loadingAlertController.view, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 80)
loadingAlertController.view.addConstraint(height);
self.present(loadingAlertController, animated: true, completion: nil)
- 1. Widok alertu w iPhonie
- 2. CGRectDivide ze wskaźnikiem NULL
- 3. .collect ze wskaźnikiem
- 4. Jak zmienić widok wskaźnika aktywności na cały ekran?
- 5. jak wyświetlić wartość zmiennej w oknie alertu?
- 6. Jak wyświetlić okno alertu w PHP?
- 7. metoda Golang ze wskaźnikiem odbiornika
- 8. Wektor w C++ ze wskaźnikiem
- 9. Klasa C++ ze statycznym wskaźnikiem
- 10. Jak dodać widok przewijania do całej aktywności?
- 11. Jak programowo wyświetlić widok UITableView?
- 12. Inicjowanie niezwiązanych ze wskaźnikiem elementów klasy
- 13. Używanie fseek ze wskaźnikiem pliku wskazującym stdin
- 14. std :: wątek ze wskaźnikiem do elementu danych
- 15. Jak wyświetlić operacje asynchroniczne na diagramie aktywności UML
- 16. Przenoszenie obiektu w obszarze zewnętrznym ze wskaźnikiem
- 17. Klasa STL dla wskaźników ze wskaźnikiem referencyjnym?
- 18. Zainicjować zmienną ze wskaźnikiem do tej zmiennej
- 19. Jak wyświetlić okno alertu z Xamarin.Forms do sprawdzania poprawności?
- 20. Jak wyświetlić prostą wiadomość alertu w języku Java?
- 21. jak wyświetlić okno alertu po pomyślnym wstawieniu przy użyciu C#
- 22. Jak wyświetlić widok kart z Gmailem?
- 23. Jak wyświetlić widok przy pierwszym uruchomieniu?
- 24. Jak wyświetlić niestandardowy widok w pasku akcji?
- 25. Jak wyświetlić zapytanie wykonane przez widok Drupala
- 26. Jak mogę wyświetlić widok jako HTML?
- 27. Jak wyświetlić widok z połowy ekranu?
- 28. Jak zainicjować ciąg ze wskaźnikiem wypełnienia w Common Lisp?
- 29. android - Jak wyświetlić okno dialogowe po zakończeniu aktywności
- 30. Widok Modal ze sterownikiem nawigacyjnym
dziękuję, będę używać UIActionSheet + UIActivityIndicatorView – Voloda2
Dlaczego należy użyć UIActionSheet w tej sytuacji? (Wiem, że Apple prawdopodobnie by się z tobą zgadzał, ale chciałbym wiedzieć dlaczego). Nie korzystasz z prywatnych interfejsów API, prawda? – Nate
Brakuje "[loading startAnimating]", a także są puste przyciski pokazujące. – jowie