ios - 为什么没有状态栏的新 iPad 上的 safeAreaInsets 和 safeAreaLayoutGuide 看起来不对?
问题描述
如果我创建一个新的单视图项目并将以下代码添加到 ViewController.m
-(void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
UIWindow *window = UIApplication.sharedApplication.windows[0];
NSLog(@"%@, %@", NSStringFromUIEdgeInsets(window.safeAreaInsets), NSStringFromCGRect([[window safeAreaLayoutGuide] layoutFrame]));
}
我在新的 iPad Pro(12.9 英寸)(第 3 代)模拟器上得到以下结果。
带状态栏:{24, 0, 20, 0}, {{0, 24}, {1024, 1322}}
没有状态栏:{0, 0, 20, 0}, {{0, 0}, {1024, 1346}}
为什么在没有状态栏的情况下顶部插图为 0 或为什么框架 y 值为 0?这些值不应该像底部插图那样等于 20 吗?
UIStatusBarHidden=YES
我通过设置和UIViewControllerBasedStatusBarAppearance=NO
在 info.plist 中删除状态栏。我在 iPhone 上得到的结果总是正确地解释了弯曲的边缘。
解决方案
推荐阅读
- mysql - 将容器化的 Node.js 应用程序连接到 MySQL 服务器
- flutter - 限制 valueNotifier.value 值的变化
- r - %--% 运算符是做什么的?
- powershell - Powershell splatting:在哈希表中传递 ErrorAction = Ignore
- r - 在 R 数据框中删除带有模式的后缀
- mysql - 试图理解 IN 和 EXISTS 之间的区别
- c++ - 如何在 C++ 中使用空值初始化 char 到 char 的映射?
- xml - 使用 PL/SQL 删除部分 XML
- javascript - JS:不要在有条件的情况下为地图添加价值
- perl - 无法在 Linux 上使用 cpan/cpanm 安装 Net::Pcap