In meiner firstViewController
gibt es eine UIButton
(GalleryButton) und in meiner secondViewController
gibt es eine UITableView
. Wenn der Benutzer auf den GalleryButton tippt, dauert es 2-3 Sekunden, bis die secondViewController
geöffnet und die Bilder geladen sind. Ich möchte eine UIActivityIndicator
zeigen, bis die secondViewController
laden. Wie geht das?Aktivitätsanzeige bis zum Laden der nächsten Ansicht
Antwort
Sie sollten die Bilder in einen Hintergrund-Thread laden und die UIActivityIndicator
im Haupt-Thread anzeigen. Ich antwortete, schon zu einem ähnlichen Problem hier: https://stackoverflow.com/a/41529056/1370336
// Main thread by default:
// show progress bar here.
DispatchQueue.global(qos: .background).async {
// Background thread:
// start loading your images here
DispatchQueue.main.async {
// Main thread, called after the previous code:
// hide your progress bar here
}
}
Ich bin neu in Swift. Kannst du mir bitte sagen, wo soll ich diesen Code schreiben? Übrigens ziehe ich zu ** secondViewController ** über ** Show-Überleitung ** im Storyboard. –
Dieser Code sollte in 'secondViewController' sein, wo Sie Ihre Bilder laden (ich vermute in der ViewDidLoad Methode). –
erstellen Activity Indicator Programetically in Ihrem Second-View-Controller
var activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
hinzufügen Below-Code in viewDidLoad() von der zweiten Ansicht Contoller
activityIndicator.hidesWhenStopped = true
activityIndicator.center = view.center
activityIndicator.startAnimating() //For Start Activity Indicator
, wenn Daten in der Tabellenansicht vollständig gefüllt ist als unten Code hinzu
activityIndicator.stopAnimating() //For Stop Activity Indicator
diese
für mich gearbeitet Activity Indicator stoping#import "ViewController.h"
#import "NextVC.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *aiStart;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.aiStart.hidden = YES;
}
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
self.aiStart.hidden = YES;
[self.aiStart stopAnimating];
}
- (IBAction)btnShowNextVCTapped:(id)sender {
dispatch_async(dispatch_get_main_queue(), ^{
self.aiStart.alpha = 0;
self.aiStart.hidden = NO;
[self.aiStart startAnimating];
[UIView animateWithDuration:0.3 animations:^{
self.aiStart.alpha = 1;
} completion:^(BOOL finished) {
NextVC* nextVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NextVC"];
[self presentViewController:nextVC animated:YES completion:nil];
}];
});
}
- 1. Aktivitätsanzeige Ansicht, die nicht
- 2. erhalten Zeit bis zum nächsten Ausgang
- 3. Listenelemente ausblenden bis zum nächsten Klick
- 4. immer Anzahl der Stunden bis zum nächsten Ereignisse
- 5. NSSortDescriptor in Swift - sortieren nach Tagen bis zum nächsten Geburtstag
- 6. Aktivitätsanzeige in der Tabbar-App
- 7. Befehlszeilen-Aktivitätsanzeige
- 8. RecyclerView scrollt bis zum Ende der Ansicht nach dem Laden von Elementen aus Firebase
- 9. Abdeckung modale Ansicht mit einer Ansicht vor dem Laden
- 10. Aktivitätsanzeige mit Segue
- 11. AKSwiftSlideMenu Aktivitätsanzeige
- 12. Berechnung Tage bis zum nächsten festgelegten Tag links
- 13. Javascript: Runden bis zum nächsten Vielfachen von 5
- 14. Was ist Microsoft bis zum nächsten mit Internet Explorer?
- 15. Floor Nummer zum nächsten Viertel, bis drei Dezimalstellen?
- 16. Flex Wie verzögert man setStyle bis zum nächsten Update?
- 17. Pause Scrollen zum nächsten "Slide" bis alle Animationen fertig sind
- 18. Merge zwei Datenrahmen bis zum nächsten vorherigen Datum beim Aggregieren
- 19. Rounding Zeit bis zum nächsten Stunden Quartal in postgresql
- 20. SQL hinzufügen SUM von Jahr bis zum nächsten Jahr
- 21. Stick Element zum Anfang der Seite bis zum nächsten Elemente dieses Typs erscheint
- 22. Problem beim Laden der Backbone-Ansicht zum ersten Mal
- 23. Aktivitätsanzeige nicht in der Mitte
- 24. Aktivitätsanzeige mit der Taste gesperrt
- 25. Rundenzeitstempel bis zur nächsten Minute
- 26. Aktivitätsanzeige erscheint nicht
- 27. Berechnung der Zeitspanne von der letzten App-Beendigung bis zum nächsten Start in Sekunden
- 28. Anhalten der nächsten Hover-Animation, bis der Vorgang abgeschlossen ist
- 29. Aktivitätsanzeige in der Mitte der Navigationsleiste
- 30. Lesen Strings bis zum Ende der Zeilen
Sie darauf hingewiesen werden, könnten sofort und laden Sie die Bilder im Hintergrund für den Übergang . Auf diese Weise hat der Benutzer eine nahtlose Erfahrung. – BallpointBen
Es scheint, dass es einen Download-Prozess in der zweiten Ansicht Controller auf dem Haupt-Thread läuft ... –
kein Download-Prozess. Bilder werden von PhotoLibrary geladen –