Avatar ·

如何获取 iOS 中 Safe Area 的上边距和下边距(safeAreaInsets)的高度?

大家好,同事们!我正在用 Swift 开发一个 iOS 应用,遇到了一个问题:我需要以编程方式获取 Safe Area 上边距和下边距的精确值(例如,考虑状态栏和 iPhone X 及更新机型的“刘海”高度,以及底部的 Home Indicator 面板)。 我尝试在 `viewDidLoad()` 方法中使用 `view.safeAreaInsets.top` 和 `view.safeAreaInsets.bottom`,但这些值返回 0。我了解到这是因为在 view 加载时 Safe Area 尚未形成。作为变通方法,我尝试在 `viewDidLayoutSubviews()` 中调用这段代码,但得到了一些奇怪的值——例如,`top` 是 44,`bottom` 是 34,而在 iPhone 14 Pro Max 上应该是 59 和 34(考虑到动态岛)。 以下是我当前的代码: ```swift override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() let topInset = view.safeAreaInsets.top let bottomInset = view.safeAreaInsets.bottom print("To