WindowOverlay

WindowOverlay 是一个 Swift 包,它提供了一种便捷的方式来向你的 SwiftUI 应用程序的窗口添加覆盖视图。这个包旨在与 SwiftUI 无缝协作,为在你的主应用程序界面之上显示内容提供了一个灵活的解决方案。

功能特点

用法

要在你的 SwiftUI 视图中使用 WindowOverlay,只需应用 windowOverlay 修饰符

struct ContentView: View {
  @State private var showOverlay = false
    
  var body: some View {
    VStack {
      Button("Show Overlay") {
        showOverlay.toggle()
     }
  }
  .windowOverlay(isPresented: showOverlay) {
    Text("This is an overlay")
      .padding()
      .background(Color.white)
      .cornerRadius(10)
    }
  }
}

工作原理

WindowOverlay 结合了 SwiftUI 和 UIKit,以创建无缝的覆盖体验

  1. windowOverlay 修饰符被应用到你的 SwiftUI 视图。
  2. 创建了一个 WindowBridgingView 来桥接 SwiftUI 和 UIKit。
  3. 创建了一个自定义的 WindowOverlayWindow 并添加到应用的窗口层级结构中。
  4. 覆盖内容在自定义窗口中渲染,显示在主应用内容之上。

系统要求