首页 > 解决方案 > 如何在swiftUI中添加将成为所有视图顶部的视图

问题描述

我正在 swiftUI 中开发 miniplayer,因此矩形视图将在整个应用程序中普遍居于首位。我已经尝试过,ZStack但目前它仅在单一视图上实现。您能告诉我如何创建最重要的视图吗?

标签: iosswiftui

解决方案


您可以在视图层次结构中的任何位置放入App.bodyContentView使用一些环境或环境对象来控制其可见性,例如

@main
struct SwiftUIApp: App {
    @State private var showView = false

    var body: some Scene {
        WindowGroup {
            ContentView()
              .environment(\.showCoverView, $showView)
              .overlay(Group {
                 if showView {
                    Text("Your top view here")    // << here !!
                 }
              })
        }
    }
}

struct ShowCoverViewKey: EnvironmentKey {
    static var defaultValue: Binding<Bool> = .constant(false)
}

extension EnvironmentValues {
    var showCoverView: Binding<Bool> {
        get { self[ShowCoverViewKey.self] }
        set { self[ShowCoverViewKey.self] = newValue }
    }
}

推荐阅读