Ios 如何延迟执行?
我正在创建一个小项目,这样在按下一个按钮 将带我到下一个使用导航控制器的视图控制器-我可以延迟一段时间后执行导航控制器的功能吗 我正在使用这个代码-Ios 如何延迟执行?,ios,swift,swift4.1,Ios,Swift,Swift4.1,我正在创建一个小项目,这样在按下一个按钮 将带我到下一个使用导航控制器的视图控制器-我可以延迟一段时间后执行导航控制器的功能吗 我正在使用这个代码- import UIKit class ViewController: UIViewController { @IBAction func enterButtonPressed(_ sender: UIButton) { let vc = storyboard?.instantiateViewController(with
import UIKit
class ViewController: UIViewController
{
@IBAction func enterButtonPressed(_ sender: UIButton)
{
let vc = storyboard?.instantiateViewController(withIdentifier: "ViewController2") as! ViewController2
self.navigationController?.pushViewController(vc, animated: true)
}
override func viewDidLoad()
{
super.viewDidLoad()
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
}
试试这个
var timeLimit = 5.0
DispatchQueue.main.asyncAfter(deadline: .now() + timeLimit, execute: {
//Play your audio here
//Audio will play after 5 seconds here
})
假设
sender.tag
保存的持续时间为0表示继续,5或10表示继续
var playTimer:Timer?
//
你的问题是什么?你想在5/10秒后播放音频还是以5/10秒的偏移量播放?要在5/10秒后计划,请使用NSTimer。实际上,asyncAfter不能保证在特定时间调用,它保证在指定时间后运行,不确定这是正确答案
@IBAction func btnClicked(_ sender:UIButton) {
playTimer?.invalidate()
playTimer = Timer.scheduledTimer(withTimeInterval: TimeInterval(sender.tag), repeats: false, block: { (T) in
// play the audio
})
}