SwiftUI弹出临时警报

问题描述

我尝试做一个会弹出一个显示1或2秒的临时警报的应用。就像App Store评级一样。

enter image description here

但是我不知道在swiftui中这叫什么。谁能回答我?

解决方法

那只是有条件显示或隐藏的视图。这是一个完整的示例,该示例使用ZStack将“谢谢”视图放置在其他视图内容上。基于@State变量showThankYou的感谢视图是否存在。 DispatchQueue.main.asyncAfter用于在3秒后删除视图。

struct ContentView: View {
    @State private var showThankYou = false
    
    var body: some View {
        ZStack {
            VStack {
                Spacer()
                Text("Stuff in the view")
                Spacer()
                Button("submit") {
                    showThankYou = true
                    DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                        self.showThankYou = false
                    }
                }
                Spacer()
                Text("More stuff in the View")
                Spacer()
            }
            if showThankYou {
                RoundedRectangle(cornerRadius: 16)
                    .foregroundColor(Color.gray)
                    .frame(width: 250,height: 250)
                    .overlay(
                        VStack {
                            Text("Submitted").font(.largeTitle)
                            Text("Thanks for your feedback").font(.body)
                        }
                    )
            }
        }
    }
}