ios - podido - por que usar una mac
¿Cuál es la altura de la barra superior del iPhone X? (6)
Sin embargo, la pantalla del iPhone X es 145 puntos más alta que una pantalla de 4.7 ", lo que da como resultado aproximadamente un 20% de espacio vertical adicional para el contenido.
para obtener más información, obtenga HIG para iPhone X de documents Apple y una descripción detallada here1 y here2
altura de la barra de estado
anteriormente 20pt, ahora 44pt
Debido a los sensores en la parte superior de la pantalla, la nueva barra de estado se divide en 2 partes. Si su interfaz de usuario está haciendo algo especial con ese espacio (anteriormente 20 puntos de altura, ahora 44 puntos), porque será más alto en el iPhone X. Asegúrese de que se pueda cambiar dinámicamente en altura. Una gran cosa es que la altura no cambiará si un usuario hace una llamada telefónica o está usando una aplicación de navegación, que anteriormente era el caso en otros iPhones.
retrato
Altura de la barra de navegación normal 88 y tiempo de título grande 140
- Título estándar: 44 puntos (88 puntos con barra de estado)
- Título grande: 140 puntos
- barra inferior - 34pt
Paisaje
- Título estándar - 32 puntos
- barra inferior - 21pt
No hay especificación en Apple Docs
Según here2 es 88
Tipos de títulos de navegación:
- Título estándar
- Título grande
Barra de navegación creciente en iOS 11
navigationController?.navigationBar.prefersLargeTitles = true
Puede obtener mediante programación la altura de la barra de navegación utilizando
safeAreaInsets
en la
view
en el controlador de vista contenido:
let navBarHeight = view.safeAreaInsets.top
Esto explicará si es una barra de navegación de título grande o no, y si hay una barra de búsqueda adjunta o no.
Consulte la
documentación de
safeAreaInsets
para obtener más información.
Puede usar la propiedad .frame de la barra de navegación para calcular la altura total del área de la barra superior:
ObjC:
CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.origin.y;
Supongo que esto es un poco tramposo, pero agregar la altura de la barra de navegación con su origen y parece dar la altura total correcta independientemente del dispositivo.
Simplemente puede obtenerlo de la siguiente manera (Swift 3):
let barHeight = navigationController?.navigationBar.frame.maxY
Para obtener el valor correcto, asegúrese de llamarlo después de configurar
prefersLargeTitles
navigationController?.navigationBar.prefersLargeTitles = false