Hyo*_*sha 4 swiftui swiftui-navigationstack
这应该很简单,但我不知道如何在 NavigationStack 后面放置背景。对于 NavigationView,只需嵌入 ZStack 中,并在 NavigationView 之前调用背景视图即可(如旧文章中所述:如果在 SwiftUI 中使用 NavigationView,如何更改背景颜色?)相同的技术对我来说不适用于 NavigationStack 。这是我所拥有的:
struct MyAngularGradient: View {
var body: some View {
ZStack {
AngularGradient(gradient: Gradient(colors: [.red, .orange , .yellow, .green, .cyan, .blue, .indigo, .purple, .red]), center: .leading)
AngularGradient(gradient: Gradient(colors: [.red, .orange , .yellow, .green, .cyan, .blue, .indigo, .purple, .red]), center: .leading)
.offset(x: -8)
}
.ignoresSafeArea()
}
}
var body: some View {
ZStack{
MyAngularGradient()
NavigationStack {
...
}
.navigationViewStyle(.stack)
} // end ZStack
Run Code Online (Sandbox Code Playgroud)
仅供参考,我在其他应用程序(带有 NavigationView)中使用了相同的 MyAngularGradient() 有什么想法吗?谢谢。
到目前为止我最接近的是:
struct MyView: View {
var body: some View {
NavigationStack {
ZStack {
Color.pink.ignoresSafeArea()
List {
NavigationLink("Hello") {
Text("Hello")
}
}
.navigationTitle("Title")
}
}
.scrollContentBackground(.hidden)
}
}
Run Code Online (Sandbox Code Playgroud)
但有些令人不满意,原因如下:
UINavigationBarAppearance()我想您可以通过在视图的构造函数中更新它来尝试以有限的方式更改它。
如果NavigationStackView.TabView (我上面的例子是在 a 中TabView)
当新视图被推入堆栈时,自定义背景消失。
由于.scrollContentBackground(.hidden)修饰符的原因,仅适用于 iOS 16+。
如果您使用 ForEach 填充List. 有趣的是,如果您调试带有或不带有 的层次结构,ForEach您会发现 SwiftUI 添加了一个新的视图控制器,在ForEach.
| 归档时间: |
|
| 查看次数: |
2845 次 |
| 最近记录: |