ios - 如何在swiftUI中添加将成为所有视图顶部的视图
问题描述
我正在 swiftUI 中开发 miniplayer,因此矩形视图将在整个应用程序中普遍居于首位。我已经尝试过,ZStack
但目前它仅在单一视图上实现。您能告诉我如何创建最重要的视图吗?
解决方案
您可以在视图层次结构中的任何位置放入App.body
并ContentView
使用一些环境或环境对象来控制其可见性,例如
@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 }
}
}
推荐阅读
- aws-secrets-manager - 如何在 dbcp 基本数据源中重新加载密码
- node.js - 当服务器使用 HTTPS 时 res.cookie 未定义
- sql-server - 当从属过程失败时执行进入(从存储过程插入)后出现神秘错误:“当前事务无法提交”
- web-scraping - 刮桌子
- pandas - 尝试将繁重的日期框架加载到excel时出现use_zip64()不存在错误
- java - 在 JavaFX 画布中访问 GraphicsContext 内的元素
- angular - 角单元测试 cdkDragEntered with jasmine
- python - 在您自己的语料库上训练 fasttext 词嵌入
- php - javascript 异常与 php7 异常,如何预先知道 throw 语句在 try 块中的位置?
- c++ - 有没有办法从 NI USB-8502 加密狗获取接口枚举?