SwiftUI показать пользовательский вид с задержкой - PullRequest
0 голосов
/ 14 января 2020

У меня есть что-то вроде этого в моем ZStack:

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

И мне нужно в последнем, чтобы показать CustomButton() с некоторой задержкой. Я пытался обернуть его в DispatchQueue.main.async, но он там не подходит. Я имею в виду:

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

TIA за ваше мнение и помощь

1 Ответ

1 голос
/ 14 января 2020

Вам нужно изменить @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
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...