如何解决NavigationView 栏材质在 iOS 15 上不可见
在 iOS 15 上,具有 NavigationView
和 .inline
模式的应用不再显示您在导航栏上看到的模糊材质颜色。
示例代码:
struct ContentView: View {
var body: some View {
NavigationView {
ZStack {
Color.red.ignoresSafeArea()
Text("Content")
}
.navigationBarTitledisplayMode(.inline)
}
}
}
对比:
如何解决此问题以保持 iOS 14 的行为?
解决方法
虽然它并不完美,但有一种方法可以通过使用 SwiftUI-Introspect 来解决这个问题。
仍然存在一个问题,对于第一次渲染,更改尚未生效。
我找到的解决方案部分是从 here 中发现的。
使用 Introspect,我添加了以下代码:
NavigationView {
/* ... */
}
.introspectNavigationController { navController in
navController.navigationBar.scrollEdgeAppearance = navController.navigationBar.standardAppearance
navController.navigationBar.isTranslucent = true
}
它现在可以工作了,但如果有 100% SwiftUI 解决方案会更好。
,一种解决方法是:
struct ContentView: View {
var body: some View {
NavigationView {
ZStack {
// choose your color here
Color(red: 1,green: 0.8,blue: 0.8).ignoresSafeArea()
Color.red.edgesIgnoringSafeArea(.bottom)
Text("Content")
}.navigationBarTitleDisplayMode(.inline)
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。