希望有人可以帮助我解决 Iphone X 中标签栏下方的高度。我需要在我的 iPhone X 框架尺寸之一中删除此高度。新的状态栏具有不同的高度,我可以参考该高度:
UIApplication.shared.statusBarFrame.height
有谁知道我如何参考 Iphone X 中 Tabbar 下方的高度?:
希望有人可以帮助我解决 Iphone X 中标签栏下方的高度。我需要在我的 iPhone X 框架尺寸之一中删除此高度。新的状态栏具有不同的高度,我可以参考该高度:
UIApplication.shared.statusBarFrame.height
有谁知道我如何参考 Iphone X 中 Tabbar 下方的高度?:
我认为这就是您要寻找的:
if #available(iOS 11.0, *) {
print(view.safeAreaInsets.bottom)
}
这是因为 iOS 11 中引入了新的安全区域,它将提供您在 iPhone X 上寻找的空间。但是,它会因设备而异。
我不知道你为什么要隐藏这个指标。但根据 Apple 推荐的指南,提到不要用其他视图覆盖这个空间/区域。
不要掩盖或特别注意关键显示功能。不要试图通过在屏幕顶部和底部放置黑条来隐藏设备的圆角、传感器外壳或访问主屏幕的指示器。也不要使用括号、边框、形状或说明性文字等视觉装饰来引起对这些区域的特别注意。
链接 - iPhone-X 的接口指南
但是,如果您的要求是在横向模式下播放视频。
您可以auto-hide
在播放时显示指示器。当用户在视频播放时触摸屏幕时,它会自动重新出现。
对于auto-hide
,您可以override prefersHomeIndicatorAutoHidden
在各自的ViewController
.
override func prefersHomeIndicatorAutoHidden() -> Bool {
return true
}
要计算导航栏和标签栏之间的可用空间,您可以将它们的坐标转换为 VC 视图的空间,然后减去。
我发现这比试图将所有可能影响保险箱的事情加在一起更容易。此外,它还具有与引入 SafeAreaInset 之前的 iOS 版本兼容的优势。
CGRect navBarFrame = [self.view convertRect:self.navigationController.navigationBar.bounds fromView:self.navigationController.navigationBar];
CGRect tabBarFrame = [self.view convertRect:self.tabBarController.tabBar.bounds fromView:self.tabBarController.tabBar];
return CGRectGetMinY(tabBarFrame) - CGRectGetMaxY(navBarFrame);