2017-10-05 67 views
1

我正在制作一个应用程序,它可以通过可定制的间歇进行振动。我有一个编号为0-50的滑块。然后将其四舍五入到最接近的整数,然后将其显示在我的标签中。现在我想执行的命令:如何添加标签值以等待命令?

@IBOutlet weak var amount: UILabel! 

@IBAction func slider1(_ sender: UISlider) { 

    amount.text = String(Int(sender.value)); 

} 

@IBAction func vibrator(_ sender: UISlider) { 

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) 

    (the wait goes here but I don't know how to add it) 
} 

也可能的话在等待命令我要除以10 标签值并不必须是专门的等待命令,只是要推迟它。

在此先感谢!

+0

'DispatchQueue.main.asyncAfter'接受可在指定时间后运行的块。获取滑块值并传递它。如果你可以将你想达到的目标分成更小的步骤,这将有所帮助。 – user1046037

+0

那么我会如何输入? –

+0

请阅读文档,这将有助于您更好地理解 – user1046037

回答

1

这是做到这一点的最好办法:

DispatchTime.now() + 1.0 

1.0的时间是:

DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) { 
    // this runs after a 1.0 second wait. 
} 

在这个例子中,经过一定量的时间宣布此函数内部的代码运行在几秒钟内等待,基本上。我从你说的假设,你想要改变这一点的代码:

DispatchTime.now() + (Int(amount.text)!/10) 

我希望这是你正在寻找的答案!

+0

好吧,我确实做到了,现在它说“可选类型的值'字符串?'不打开;你的意思是使用'!'要么 '?'?”而且它正在强调“文字”一词​​中的“t”请帮助! –

+0

哦,是的,将它改为:'DispatchTime.now()+(Int(amount.text!)!/ 10)'应该可以工作。 –

+0

现在,它说。 “二元运算符'+'不能应用于'DispatchTime'和'Int'类型的操作数”我现在该做什么? –