SwiftUI设置延迟时间
SwiftUI设置延迟时间

SwiftUI设置延迟时间

在 SwiftUI 中,可以使用 DispatchQueue.main.asyncAfter 可以在指定的延迟时间后执行特定的任务。

DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
    print("2 秒后执行")
}

DispatchQueue.main:主线程队列,通常用于更新 UI 或其他与主线程相关的任务。

asyncAfter(deadline:):在指定的时间后异步执行闭包中的代码。

.now() + 2.0:延迟 2 秒后执行。

常见使用场景

1、延迟更新 UI

DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
    self.showAlert = true
}

2、模拟网络请求延迟

func fetchData() {
    DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
        self.dataLoaded = true
    }
}

3、动画延迟

withAnimation {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
        self.showView.toggle()
    }
}

注意事项

如果在 background 队列中调用 UI 更新,务必切换回主线程。

如果任务不需要在主线程执行,可以使用 DispatchQueue.global().asyncAfter。

相关文章

Swift管理多线程任务框架GCD:https://fangjunyu.com/2024/11/02/swift%e7%ae%a1%e7%90%86%e5%a4%9a%e7%ba%bf%e7%a8%8b%e4%bb%bb%e5%8a%a1%e6%a1%86%e6%9e%b6gcd/

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注