Xamarin.iOS: wie man die Statusbar Höhe in ViewWillTransitionToSize bestimmten

stimmen
0

Ich habe einen Blick haben, enthaltend:

  • ein MKMapView, einige angezeigt werden Elemente auf einer Karte
  • ein UITableViewin einem eingebetteten UIView, die angezeigt werden Elemente in einer Liste

Der Benutzer muss in der Lage sein , um die Karte anzuzeigen oder die Liste durch einen mir bewegenden Separator .

Das funktioniert gut, aber ich treffe ein Problem , nachdem der Benutzer den Bildschirm dreht : in diesem Fall wird die Liste nicht mehr korrekt angezeigt.

Die Position der Liste UIView ist setted von seinem oberen Rand Einschränkung festgelegt wird : das erste Mal , ich kenne die Statusleiste Höhe (mit UIApplication.SharedApplication.StatusBarFrame.Height).

Aber nach der Rotation, muss ich diese Einschränkung neu zu berechnen. Dazu versuche ich die Einschränkungen in neu zu berechnen ViewWillTransitionToSize().

Mein Problem ist , dass ich nicht den erwarteten Wert während des Gesprächs erhalten ViewWillTransitionToSize(): der „alten“ Wert von StatusBarFrame.Heightgefassten wird.

Ich versuche auch , die zu bekommen statusbar Status mit , UIApplication.SharedApplication.StatusBarHiddenaber das Problem ist das gleiche.

Gibt es eine andere Art und Weise erlaubt mir, die richtige statusbar Höhe während der Rotation zu bekommen?

Veröffentlicht am 18/12/2018 um 11:06
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich habe den statusbar Status an der falschen Stelle getestet:

public override void ViewWillTransitionToSize(CoreGraphics.CGSize toSize, IUIViewControllerTransitionCoordinator coordinator) 
{
    coordinator.AnimateAlongsideTransition((IUIViewControllerTransitionCoordinatorContext obj) => {
        // Define any animations you want to perform (equivilent to willRotateToInterfaceOrientation)
        // StatusBar status and height is not yet updated
    }, (IUIViewControllerTransitionCoordinatorContext obj) => {
        // Completition executed after transistion finishes (equivilent to didRotateFromInterfaceOrientation)
        // StatusBar status and height is well updated
    });

    base.ViewWillTransitionToSize(toSize, coordinator);
}

Wenn der Test korrekt nicht ist, funktioniert dies in Ordnung.

Beantwortet am 21/12/2018 um 16:22
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more