Xamarin.iOS: cómo determinar la altura de la barra de estado en ViewWillTransitionToSize

votos
0

Tengo que tener una vista que contenga:

  • una MKMapView, para mostrar algunos elementos en el mapa
  • una UITableViewincrustado en una UIView, para mostrar los elementos de una lista

El usuario debe ser capaz de mostrar el mapa o la lista, moviendo un separador .

Esto funciona bien, pero me encuentro con un problema después de que el usuario gira la pantalla : en este caso, la lista se muestra ya no correctamente.

La posición de la lista UIView setted especificando que es superior restricción margen: la primera vez que conocen la altura de la barra de estado (con UIApplication.SharedApplication.StatusBarFrame.Height).

Pero después de la rotación, lo que necesito para volver a calcular esta restricción. Para ello, trato de volver a calcular las limitaciones en ViewWillTransitionToSize().

Mi problema es que no tengo el valor esperado durante la llamada a ViewWillTransitionToSize(): el valor de viejo de StatusBarFrame.Heightsetted.

También trato de obtener el estatus de estado con UIApplication.SharedApplication.StatusBarHiddenpero el problema es el mismo.

¿Hay otra manera que me permite obtener la altura correcta de estado durante la rotación?

Publicado el 18/12/2018 a las 11:06
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

He probado el estado de estado en el lugar equivocado:

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 la prueba se dont correctamente, esto funciona bien.

Respondida el 21/12/2018 a las 16:22
fuente por usuario

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