SwiftUI 延迟显示自定义视图

SwiftUI show custom View with delay

我的 ZStack 中有这样的东西:

if hidePopup {
      CustomButton()
      .hidden()
 } else if stateManager.isBtnClosePressed {
      CustomButton()
      .hidden()
 } else {
      CustomButton()
 }

我需要在最后的 else 中延迟显示 CustomButton()。我试图将它包装在 DispatchQueue.main.async 中,但它不适合那里。我的意思是:

DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
      CustomButton()
 } 

TIA 征求您的意见和帮助

您需要在延迟后更改 @State 变量。例如:

struct ContentView: View {
    @State var isButtonHidden = true
    let button = Button("Custom", action: {})

    var body: some View {
        Group {
            if isButtonHidden {
                button.hidden()
            } else {
                button
            }
        }
        .onAppear {
            DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
                self.isButtonHidden = false
            }
        }
    }
}