2017-10-05 5 views
1

Je fais une application qui vibre avec des pauses personnalisables entre les deux. J'ai un curseur qui est numéroté 0-50. Et il arrondit à l'entier le plus proche puis l'affiche dans mon étiquette. Je suis maintenant en train d'exécuter la commande:Comment ajouter des valeurs d'étiquette aux commandes wait?

@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) 
} 

aussi, si possible, dans la commande d'attente que je veux diviser la valeur de l'étiquette par 10. il ne doit pas être spécifiquement la commande d'attente, juste quelque chose à retarder il.

Merci d'avance!

+0

'DispatchQueue.main.asyncAfter' accepte un bloc qui peut s'exécuter après une durée spécifiée. Obtenez la valeur du curseur et transmettez-la. Il serait utile si vous pouviez casser ce que vous voulez réaliser en plus petites étapes. – user1046037

+0

Alors, comment pourrais-je taper ça? –

+0

S'il vous plaît lire la documentation, qui vous aiderait à mieux comprendre – user1046037

Répondre

1

C'est la meilleure façon de le faire:

le code dans la fonction exécute
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) { 
    // this runs after a 1.0 second wait. 
} 

Dans cet exemple, après un laps de temps déclaré ici:

DispatchTime.now() + 1.0 

Le 1.0 est le temps en quelques secondes à attendre, essentiellement. Je suppose que de ce que vous avez dit, vous aurez envie de changer ce morceau de code à:

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

J'espère que c'est la réponse que vous cherchez!

+0

Ok, je l'ai fait exactement et maintenant il dit "Valeur du type optionnel 'String?' pas déballé, vouliez-vous utiliser '!' ou '?'?" Et il souligne le "t" dans le mot "texte" S'il vous plaît, aidez! –

+0

Oh oui, changez cela en: 'DispatchTime.now() + (Int (montant.text!)!/10)', devrait fonctionner. –

+0

Maintenant, il est dit. "L'opérateur binaire '+' ne peut pas être appliqué aux opérandes de type 'DispatchTime' et 'Int'" Que faire maintenant? –