2017-10-05 92 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'類型的操作數」我現在該做什麼? –