【问题标题】:SwiftUI show custom View with delaySwiftUI 延迟显示自定义视图
【发布时间】:2020-01-14 19:07:48
【问题描述】:

我的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 为您提供意见和帮助

【问题讨论】:

    标签: swiftui delay


    【解决方案1】:

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

    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
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      相关资源
      最近更新 更多