ios - 获取 iOS 上 NavigationBar 的默认高度(或 maxY)
问题描述
我想知道是否有任何方法可以让我们获得默认的导航栏height
(maxY
最好)NavigationController
。
知道 iOS 11 引入了大标题,那么我们有什么办法可以让“小标题”的导航栏和“大标题”的导航栏默认height
(或)?maxY
我问这个的原因是因为我正在使导航栏的背景透明并向其引入我自己的背景(这是一个效果视图)。但我遇到的问题是每次我运行以下代码
self.navigationController?.navigationBar.frame.maxY
它返回的数量比预期的要高:/
我试图在许多回调上运行这段代码 -> onViewWillAppear
, onViewDidAppear
,onViewDidLoad
解决方案
您可以使用此获取导航栏和状态栏的高度
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let topSpace:CGFloat?
if #available(iOS 11.0, *) {
topSpace = self.view.safeAreaInsets.top
} else {
topSpace = self.topLayoutGuide.length
}
print(topSpace)
}
推荐阅读
- python - 使用 Python 转换列表
- r - 具有多个预测变量的多个逻辑回归代码的问题
- javascript - 在本地加载一个 Tensorflow.js 模型
- google-sheets - 如何通过将 2 列作为约束来找到谷歌表格中值的平均值?
- python - 获取python3:代码在iMac上成功运行后无法打开文件和Errno 2错误
- .net-core - ListTablesSegmentedAsync 忽略继续令牌
- swift - 结构和类比较的类型检查转换
- sql - 获取按名称和帐号 SQL Server 分组的金额时出错
- discord.js - 服务器加入日志显示“${guild.name}”而不是公会名称
- c# - 如何使用 Brep 对象的其中一个面与 XY、XZ 或 YZ 平面平行对齐?