2

希望有人可以帮助我解决 Iphone X 中标签栏下方的高度。我需要在我的 iPhone X 框架尺寸之一中删除此高度。新的状态栏具有不同的高度,我可以参考该高度:

UIApplication.shared.statusBarFrame.height

有谁知道我如何参考 Iphone X 中 Tabbar 下方的高度?:

在此处输入图像描述

4

3 回答 3

4

我认为这就是您要寻找的:

if #available(iOS 11.0, *) {
  print(view.safeAreaInsets.bottom)
}

这是因为 iOS 11 中引入了新的安全区域,它将提供您在 iPhone X 上寻找的空间。但是,它会因设备而异。

于 2017-09-25T20:59:36.347 回答
2

我不知道你为什么要隐藏这个指标。但根据 Apple 推荐的指南,提到不要用其他视图覆盖这个空间/区域。

不要掩盖或特别注意关键显示功能。不要试图通过在屏幕顶部和底部放置黑条来隐藏设备的圆角、传感器外壳或访问主屏幕的指示器。也不要使用括号、边框、形状或说明性文字等视觉装饰来引起对这些区域的特别注意。

链接 - iPhone-X 的接口指南

但是,如果您的要求是在横向模式下播放视频。
您可以auto-hide在播放时显示指示器。当用户在视频播放时触摸屏幕时,它会自动重新出现。

对于auto-hide,您可以override prefersHomeIndicatorAutoHidden在各自的ViewController.

override func prefersHomeIndicatorAutoHidden() -> Bool {
        return true
    }
于 2017-09-26T05:21:57.017 回答
0

要计算导航栏和标签栏之间的可用空间,您可以将它们的坐标转换为 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);
于 2018-05-31T14:36:53.573 回答