如何获得topLayoutGuide的高度?

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有一个名为“topLayoutGuide”的属性,但似乎不是我想要的。

我知道如何实现在故事板, 在代码中 ,我无法得到顶部布局指南的高度。 我search了几个小时一无所获。

在这里输入图像说明

在这里输入图像说明

以下是通缉。

在这里输入图像说明

您可以获取topLayoutGuide值作为其length属性:

 // Inside your viewController self.topLayoutGuide.length 

由于它是一个单一的值(即:它没有高度和宽度),他们只是把它叫做length 。 对于bottomLayoutGuide同样适用。

希望这可以帮助

还有一件事要提到,在这个属性的苹果文档中:

//作为礼节,当不使用自动布局时,这个值可以在-viewDidLayoutSubviews中引用,或者在-layoutSubviews中调用super

由于布局已经初始化,在这两个函数中使用这个属性会得到准确的值。 如果你在viewDidLoad函数中使用它,这个属性将是0。

如果有人正在寻找如何计算适用于iOS 11的SafeLayoutGuide的插页高度,因为现在不推荐使用顶部和底部布局指南,您可以在以下位置find它:

 view.safeAreaInsets 

请注意,顶部和底部布局指南是ViewController的一部分,现在SafeLayoutGuide是ViewController主视图的一部分。