如何在 Swift 中的 IF 语句中设置时间延迟?
How can I put a time delay within an IF statement in Swift?
我正在为我在大学的计算机课程开发 iOS 应用程序的原型,我用它来证明导航和登录系统功能。到目前为止,我在这方面取得了成功,一切都按计划进行,尽管我怀疑我是否以正确的方式完成了它,因为我对 Swift 编程语言和 XCode IDE.
我的问题是,我知道这听起来很愚蠢,因为我的应用程序不允许我在转换到新视图之前有时间延迟。登录成功后,它立即过渡到我的主页。但是,我希望应用程序在成功登录和打开主页之间有一个短暂的延迟。
我在搜索不同的方法后试了一下,目前的方法是 sleep(UInt32(1.0))
在打开主页之前暂停应用程序 1 秒 - 本节的完整代码如下:
// external if statement for when login succeeds
if authenticationDidSucceed {
Text("Login succeeded!")
.font(.headline)
.frame(width: 250, height: 80)
.background(Color.green)
.cornerRadius(20.0)
.foregroundColor(.white)
.animation(Animation.default)
// this is what's broken
sleep(UInt32(1.0))
// calling navigation bar containing other pages
HostingTabBar()
}
这似乎是 return 错误 Static method 'buildBlock' requires that 'UInt32' conform to 'View'
,我认为这与它在 if 语句中的事实有关。
如果有人知道解决此问题的任何方法,我们将不胜感激,如果您需要我附加更多代码片段或任何内容,请告诉我。
非常感谢您的帮助。
采纳aheze的代码建议,将其添加到我的程序中合适的位置,成功了,现在应用程序在成功登录后暂停了一秒钟。这并不完全符合我的需要,因为成功的登录消息现在根本没有出现,可能是由于时间延迟,但我相信我可以解决这个问题,因为它看起来很简单!
aheze的代码插入到我的程序中:
if self.username == storedUsername && self.password == storedPassword {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
self.authenticationDidSucceed = true
}
再次感谢您的帮助,希望我做对了!
我正在为我在大学的计算机课程开发 iOS 应用程序的原型,我用它来证明导航和登录系统功能。到目前为止,我在这方面取得了成功,一切都按计划进行,尽管我怀疑我是否以正确的方式完成了它,因为我对 Swift 编程语言和 XCode IDE.
我的问题是,我知道这听起来很愚蠢,因为我的应用程序不允许我在转换到新视图之前有时间延迟。登录成功后,它立即过渡到我的主页。但是,我希望应用程序在成功登录和打开主页之间有一个短暂的延迟。
我在搜索不同的方法后试了一下,目前的方法是 sleep(UInt32(1.0))
在打开主页之前暂停应用程序 1 秒 - 本节的完整代码如下:
// external if statement for when login succeeds
if authenticationDidSucceed {
Text("Login succeeded!")
.font(.headline)
.frame(width: 250, height: 80)
.background(Color.green)
.cornerRadius(20.0)
.foregroundColor(.white)
.animation(Animation.default)
// this is what's broken
sleep(UInt32(1.0))
// calling navigation bar containing other pages
HostingTabBar()
}
这似乎是 return 错误 Static method 'buildBlock' requires that 'UInt32' conform to 'View'
,我认为这与它在 if 语句中的事实有关。
如果有人知道解决此问题的任何方法,我们将不胜感激,如果您需要我附加更多代码片段或任何内容,请告诉我。
非常感谢您的帮助。
采纳aheze的代码建议,将其添加到我的程序中合适的位置,成功了,现在应用程序在成功登录后暂停了一秒钟。这并不完全符合我的需要,因为成功的登录消息现在根本没有出现,可能是由于时间延迟,但我相信我可以解决这个问题,因为它看起来很简单!
aheze的代码插入到我的程序中:
if self.username == storedUsername && self.password == storedPassword {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
self.authenticationDidSucceed = true
}
再次感谢您的帮助,希望我做对了!