Why the view.safeAreaInset is same for Opaque and Transparent UINavigationBarAppearance?

91 Views Asked by At

When we use the old way of making the navigation bar translucent or opaque using isTranslucent property on the navigation bar, the view's safeAreaInset returns some value other than 0 for the translucent navigation bar and viceVersa.

But this behaviour is not seen when using the below code as 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

For this code i am still seeing safeAreaInset.top > 0.

Please help me to understand this behaviour. And how to get inset.top as 0 with new UINavigationBarAppearance api.

1

There are 1 best solutions below

0
On

Answering my own question: Using isTranslusent with Appearance API helped me to achieve the old behavior.

As appearance.configureWithOpaqueBackground() only make the bar appearance opaque.