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.