Mat*_*tis 6 uinavigationcontroller ios swift swiftui
在我正在制作的 iOS 应用程序中,我使用 NavigationLink 从主视图转到另一个视图。我希望两个视图的导航栏中都存在一个按钮,该按钮将在视图中的所有内容之上叠加模糊效果。在主视图中,模糊效果很好,但在第二个视图中,导航栏和导航栏标题不会变得模糊,并保持在模糊视图的顶部。
如何使导航视图出现在第二个视图中的模糊下方?
主视图:
var body: some View {
ZStack {
NavigationView {
ScrollView(.vertical) {
. . .
}
.navigationBarItems(
leading: Button(action: {
showBlurView.toggle()
}) {
Text("Show blur view")
}
),
trailing: Button(action: {
NavigationLink(destination: SecondView()) {
Text("2nd view")
}
}
)
}
BlurEffectView(style: .systemThinMaterial)
.edgesIgnoringSafeArea(.all)
.hidden(showBlurView == true ? false : true)
}
}
Run Code Online (Sandbox Code Playgroud)
第二个视图:
var body: some View {
ZStack {
VStack {
...
}.navigationBarTitle("Second View")
BlurEffectView(style: .systemThinMaterial)
.edgesIgnoringSafeArea(.all)
.hidden(showBlurView == true ? false : true)
}
}
Run Code Online (Sandbox Code Playgroud)
BlurEffectView 的代码:
struct BlurEffectView: UIViewRepresentable {
let style: UIBlurEffect.Style = .systemMaterial
func makeUIView(context: Context) -> UIVisualEffectView {
return UIVisualEffectView(effect: UIBlurEffect(style: style))
}
func updateUIView(_ uiView: UIVisualEffectView, context: Context) {
uiView.effect = UIBlurEffect(style: style)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2061 次 |
| 最近记录: |