在SwiftUI中,我为navigationBarTitle设置了.inline显示模式。
我还使用UINavigationBarAppearance并设置背景颜色。
但是iOS 15 navigationBar太奇怪了。
我在AppDelegate中设置了UINavigationBarAppearance配置。
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.beige
UINavigationBar.appearance().standardAppearance = appearanceiOS 14正常

iOS 15 navigationBar背景色不变
[

所以我找到了iOS 15 navigationBar背景色的解决方案。
添加scrollEdgeAppearance就可以解决这个问题。
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.beige
UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = appearance但它会有问题。

我如何解决额外的面积,并让它像iOS 14版本?
我还为scrollEdgeAppearance设置了standardAppearance,但它不起作用。
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.beige
UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = UINavigationBar.appearance().standardAppearance发布于 2021-10-22 07:21:17
我总是通过在内容视图的init()中设置它来实现这一点
init()
{
let coloredAppearance = UINavigationBarAppearance()
coloredAppearance.backgroundColor = UIColor(mainColor)
UINavigationBar.appearance().standardAppearance = coloredAppearance
UINavigationBar.appearance().compactAppearance = coloredAppearance
UINavigationBar.appearance().scrollEdgeAppearance = coloredAppearance
}https://stackoverflow.com/questions/69672533
复制相似问题