top guide ios swift

ios - top - safearealayoutguide



¿Cómo obtener la altura de topLayoutGuide? (3)

Esto obtiene la longitud (en puntos) de la parte de la vista de un controlador de view que está superpuesta por barras de UIKit translúcidas o transparentes.

override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() var topSpace:CGFloat? var bottomSpace:CGFloat? if #available(iOS 11.0, *) { topSpace = self.view.safeAreaInsets.top bottomSpace = self.view.safeAreaInsets.bottom } else { topSpace = self.topLayoutGuide.length bottomSpace = self.bottomLayoutGuide.length } }

moviePlayer = MPMoviePlayerController(contentURL: url) moviePlayer.view.frame = CGRect(x: 0, y:{layoutguide.height}, width: self.view.frame.width, height: 300) self.view.addSubview(moviePlayer.view)

viewcontroller tiene un atributo llamado "topLayoutGuide", pero parece que no quería.

Sé cómo implementar en el guión gráfico, en el código , no puedo obtener la altura de la Guía de diseño superior. Busqué por horas sin obtener nada.

A continuación se busca.


Puede obtener el valor topLayoutGuide como su propiedad de length :

// Inside your viewController self.topLayoutGuide.length

Dado que es un valor único (es decir, no tiene una altura y una anchura), simplemente lo llamaron length . Lo mismo se aplica para bottomLayoutGuide.

Espero que esto ayude

Una cosa más para mencionar, en el documento de Apple para esta propiedad:

// Como cortesía cuando no se usa el diseño automático, este valor es seguro referirse a in -viewDidLayoutSubviews o in -layoutSubviews después de llamar a super

Utilice esta propiedad en estas dos funciones para obtener el valor exacto, ya que el diseño se ha inicializado. Si lo usa en la función viewDidLoad , esta propiedad será 0.


Si alguien está buscando cómo calcular la altura de las inserciones de SafeLayoutGuide disponibles para iOS 11 porque la Guía de diseño superior e inferior está obsoleta ahora, puede encontrarla en

view.safeAreaInsets

Observe que la Guía de diseño superior e inferior formaba parte de ViewController, y ahora SafeLayoutGuide forma parte de la vista principal de ViewController.