gpt4 book ai didi

ios - 呈现 Modal 全屏 SwiftUI

转载 作者:行者123 更新时间:2023-12-03 20:25:00 28 4
gpt4 key购买 nike

我如何呈现一个模式,该模式将占据全屏并且不能通过向下滑动来关闭?目前,我在 View 上使用 .sheet 来呈现可关闭的模式。

我没有注意到 Xcode 中的任何 beta 更改会改变此行为。

如有任何帮助,我们将不胜感激:)

最佳答案

SwiftUI 1.0

我不确定这是否是您想要的,但可以通过使用 ZStack 和状态变量来控制它的隐藏/显示来创建您自己的模式屏幕。

代码

struct CustomModalPopups: View {
@State private var showingModal = false

var body: some View {
ZStack {
VStack(spacing: 20) {
Text("Custom Popup").font(.largeTitle)

Text("Introduction").font(.title).foregroundColor(.gray)

Text("You can create your own modal popup with the use of a ZStack and a State variable.")
.frame(maxWidth: .infinity)
.padding().font(.title).layoutPriority(1)
.background(Color.orange).foregroundColor(Color.white)

Button(action: {
self.showingModal = true
}) {
Text("Show popup")
}
Spacer()
}

// The Custom Popup is on top of the screen
if $showingModal.wrappedValue {
// But it will not show unless this variable is true
ZStack {
Color.black.opacity(0.4)
.edgesIgnoringSafeArea(.vertical)
// This VStack is the popup
VStack(spacing: 20) {
Text("Popup")
.bold().padding()
.frame(maxWidth: .infinity)
.background(Color.orange)
.foregroundColor(Color.white)
Spacer()
Button(action: {
self.showingModal = false
}) {
Text("Close")
}.padding()
}
.frame(width: 300, height: 200)
.background(Color.white)
.cornerRadius(20).shadow(radius: 20)
}
}
}
}
}

示例

(摘自《SwiftUI Views》一书) SwiftUI Views Book Excerpt因此,在这里,您的弹出窗口很小,但您可以使用该 VStack 上的帧修改器调整尺寸以使其全屏显示。

关于ios - 呈现 Modal 全屏 SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58023147/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com