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)
Run Code Online (Sandbox Code Playgroud)
viewcontroller有一个名为"topLayoutGuide"的属性,但似乎不是我想要的.
我知道如何在storyboard 中实现,在代码中,我无法获得Top Layout Guide的高度.我搜索了几个小时什么都没有.


下面是想要的.

Mat*_*mbo 51
您可以将topLayoutGuide值作为其length属性:
// Inside your viewController
self.topLayoutGuide.length
Run Code Online (Sandbox Code Playgroud)
因为它是单个值(即:它没有高度和宽度),所以它们只是调用它length.同样适用于bottomLayoutGuide.
希望这可以帮助
还有一点需要注意,在这个属性的apple doc中:
//作为不使用自动布局的礼貌,这个值在-viewDidLayoutSubviews中引用是安全的,或者在调用super之后在-layoutSubviews中引用
在这两个函数中使用此属性将获得准确的值,因为布局已初始化.如果在viewDidLoad函数中使用它,则此属性将为0.
Mar*_*ret 25
如果有人正在寻找如何计算iOS 11可用的SafeLayoutGuide插图的高度,因为现在不推荐使用Top and Bottom Layout Guide,您可以在以下位置找到它:
view.safeAreaInsets
Run Code Online (Sandbox Code Playgroud)
请注意,Top和Bottom Layout Guide是ViewController的一部分,现在SafeLayoutGuide是ViewController主视图的一部分.
Raj*_*r R 12
这将获得view由半透明或透明UIKit条覆盖的视图控制器部分的长度(以磅为单位)。
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
}
}
Run Code Online (Sandbox Code Playgroud)