2016-07-14 12 views
0

In meinem iOS-Projekt hat die Seite eine Listenansicht, die einige Zeit zum Laden braucht. Ich möchte den Ladevorgang wie in der Abbildung gezeigt here anzeigen, aber es deaktiviert die ganze Seite, bis es geladen wird. Ich möchte den Benutzer mit der Navigationstaste zurückkehren lassen, wenn er während des Ladevorgangs möchte.Xamarin iOS: Wie man die Ansicht aktiv hält, wenn das Ladenlogo auf dem Bildschirm erscheint

Der Code ich jetzt benutze ist:

var bounds = UIScreen.MainScreen.Bounds; 
loadPop = new LoadingOverlay (bounds); 
View.Add (loadPop); 
loadingOverlay.Hide(); 

Gibt es eine Möglichkeit, die Benutzer verwenden Navigation lassen können Seiten wechseln, während die Seite immer noch das Symbol Laden anzeigt und die Daten noch geladen wird?

+0

Wenn Sie möchte der Benutzer in der Lage sein, weg zu navigieren, warum den gesamten Bildschirm mit einer Ladeansicht abdecken? – rebello95

+0

Ist es möglich, eine bestimmte Ansicht festzulegen, d. H. Nur für eine Listenansicht, und dem Benutzer die Möglichkeit zu geben, zurück zu navigieren, wenn er sich entscheidet? Wenn ja, wie kann ich es einstellen? – TheDeveloper

Antwort

1

Es ist wirklich sehr einfach. Sie müssen nur eine Ansicht (mit dem Drehfeld) oben in der Liste hinzufügen und sie manuell ausblenden, wenn Daten geladen werden. Wenn Sie immer noch, dass LoadingOverlay Probe verwendet werden soll, ändern Sie die Grenzen Argument:

var navigationBarHeight = 48; // not sure what´s the actual height. Google it! 
var bounds = UIScreen.MainScreen.Bounds; 
loadPop = new LoadingOverlay (new CGRect(bounds.X, navigationBarHeight, bounds.Width, bounds.Height - navigationBarHeight); 
View.Add (loadPop); 

Wenn Sie nur die Spinner benötigen, können Sie auch über den Link einige Code nehmen Sie zur Verfügung gestellt:

activitySpinner = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge); // change color here 
activitySpinner.Frame = new CGRect (
       centerX - (activitySpinner.Frame.Width/2) , 
       centerY - activitySpinner.Frame.Height - 20 , 
       activitySpinner.Frame.Width, 
       activitySpinner.Frame.Height); 
activitySpinner.AutoresizingMask = UIViewAutoresizing.All; 
AddSubview (activitySpinner); 
activitySpinner.StartAnimating(); 
+0

Danke. Ich möchte das LoadingOverlay-Beispiel nicht verwenden, wenn dies nicht der Fall ist. Wie kann ich einfach eine Ansicht (mit dem Drehfeld) hinzufügen, wie du es erwähnt hast? – TheDeveloper

+0

Ich habe meine Antwort aktualisiert – xleon