Xamarin.iOS: comment la hauteur d'une durée déterminée de la barre d'état en ViewWillTransitionToSize

voix
0

J'avoir une vue contenant:

  • un MKMapView, pour afficher certains éléments sur une carte
  • un UITableViewintégré dans un UIView, pour afficher les éléments d'une liste

L'utilisateur doit pouvoir afficher la carte ou la liste, en déplaçant un séparateur .

Cela fonctionne bien, mais je rencontre un problème après que l'utilisateur fait pivoter l'écran : dans ce cas, la liste n'est plus affiché correctement.

La position de la liste UIView est en spécifiant setted il est contrainte supérieure de la marge: la première fois que je connais la hauteur de la barre d'état (avec UIApplication.SharedApplication.StatusBarFrame.Height).

Mais après la rotation, je dois recalcule cette contrainte. Pour cela, je tente de les contraintes recalcule ViewWillTransitionToSize().

Mon problème est que je ne reçois pas la valeur attendue lors de l'appel à ViewWillTransitionToSize(): la valeur « ancienne » de StatusBarFrame.Heightest setted.

J'essaie aussi d'obtenir le statut de statusbar avec UIApplication.SharedApplication.StatusBarHiddenmais le problème est le même.

Y at-il une autre façon me permettant d'obtenir la hauteur de la barre d'état correcte lors de la rotation?

Créé 18/12/2018 à 11:06
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Je l'ai testé l'état de la barre d'état au mauvais endroit:

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);
}

Si le test est correctement DonT, cela fonctionne très bien.

Créé 21/12/2018 à 16:22
source utilisateur

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