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