首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI: NavigationBar标题displayMode和iOS 15中的外观

SwiftUI: NavigationBar标题displayMode和iOS 15中的外观
EN

Stack Overflow用户
提问于 2021-10-22 06:54:12
回答 1查看 82关注 0票数 0

在SwiftUI中,我为navigationBarTitle设置了.inline显示模式。

我还使用UINavigationBarAppearance并设置背景颜色。

但是iOS 15 navigationBar太奇怪了。

我在AppDelegate中设置了UINavigationBarAppearance配置。

代码语言:javascript
复制
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.beige
                    
UINavigationBar.appearance().standardAppearance = appearance

iOS 14正常

iOS 15 navigationBar背景色不变

[

所以我找到了iOS 15 navigationBar背景色的解决方案。

添加scrollEdgeAppearance就可以解决这个问题。

代码语言:javascript
复制
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.beige
                
UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = appearance

但它会有问题。

我如何解决额外的面积,并让它像iOS 14版本?

我还为scrollEdgeAppearance设置了standardAppearance,但它不起作用。

代码语言:javascript
复制
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor.beige
            
UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = UINavigationBar.appearance().standardAppearance
EN

回答 1

Stack Overflow用户

发布于 2021-10-22 07:21:17

我总是通过在内容视图的init()中设置它来实现这一点

代码语言:javascript
复制
init() 
{
        let coloredAppearance = UINavigationBarAppearance()
        coloredAppearance.backgroundColor = UIColor(mainColor)
        UINavigationBar.appearance().standardAppearance = coloredAppearance
        UINavigationBar.appearance().compactAppearance = coloredAppearance
        UINavigationBar.appearance().scrollEdgeAppearance = coloredAppearance
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69672533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档