希望有人可以帮我提高Iphone X中Tabbar下方的高度。我需要在iPhone X的一个框架尺寸中移除此高度。新的状态栏有不同的高度,我可以用以下参考高度:
UIApplication.shared.statusBarFrame.height
有谁知道我如何在Iphone X中引用Tabbar下方的高度?:
答案 0 :(得分:4)
我认为这就是你要找的东西:
if #available(iOS 11.0, *) {
print(view.safeAreaInsets.bottom)
}
这是因为iOS 11中引入了新的安全区域,并且会在iPhone X上提供您正在寻找的空间。但它会因设备而异。
答案 1 :(得分:2)
我不知道你为什么要隐藏这个指标。但是根据Apple建议的指导方针,我们提到不要用其他观点来覆盖这个空间/区域。
不要掩盖或特别注意关键显示功能。不要 试图隐藏设备的圆角,传感器外壳或 通过在黑色条上放置黑条访问主屏幕的指示器 屏幕的顶部和底部。不要使用像这样的视觉装饰品 括号,边框,形状或说明特殊的说明文字 关注这些领域。
链接 - Interface guidelines for iPhone-X
但是,如果您的要求是在横向模式下播放视频
您可以在播放时auto-hide
指示。当用户在视频播放时触摸屏幕时,它将自动重新出现。
对于auto-hide
,您可以override prefersHomeIndicatorAutoHidden
分别ViewController
。
override func prefersHomeIndicatorAutoHidden() -> Bool {
return true
}
答案 2 :(得分: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);