0

当我们使用导航栏isTranslucent上的属性使导航栏半透明或不透明的旧方法时,视图的 safeAreaInset 为半透明导航栏返回一些不是 0 的值,反之亦然。

但是当使用下面的代码作为 pe new iOS 13 SDK 时,看不到这种行为

let appearance = UINavigationBarAppearance()
    appearance.configureWithOpaqueBackground()
    appearance.backgroundColor = UIColor.systemRed
    appearance.titleTextAttributes = [.foregroundColor: UIColor.lightText] // With a red background, make the title more readable.
    navigationItem.standardAppearance = appearance
    navigationItem.scrollEdgeAppearance = appearance
    navigationItem.compactAppearance = appearanc

对于此代码,我仍然看到 safeAreaInset.top > 0。

请帮助我理解这种行为。以及如何使用新的 UINavigationBarAppearance api 将 inset.top 设为 0。

4

1 回答 1

0

回答我自己的问题:使用isTranslusentwith Appearance API 帮助我实现了旧行为。

因为appearance.configureWithOpaqueBackground()只会使条形图外观不透明。

于 2021-10-12T09:53:47.410 回答