Je crée une calculatrice simple et j'ai mis quelques boutons numériques dans un @IBAction. J'accéder au sender.title d'un bouton enfoncé pour mettre à jour l'étiquette d'entrée comme ceci:Swift: Comment accéder à un objet (par exemple un bouton) dans une collection @IBAction pour renvoyer un expéditeur à une nouvelle fonction?
@IBAction func numberButtonTapped(_ sender: UIButton) {
guard let numberButton = sender.title(for: .normal) else {return}
updateInput(num: numberButton)
}
Maintenant, je voudrais animer chaque bouton appuyé par un simple CGAffineTransform (je sais comment cela se fait) et je peux mettre l'animation dans le @IBAction et évidemment cela fonctionne:
@IBAction func numberButtonTapped(_ sender: UIButton) {
guard let numberButton = sender.title(for: .normal) else {return}
sender.transform = CGAffineTransform(scaleX: 1.2, y: 1.2) // completion handler to reverse the animation
updateInput(num: numberButton)
}
Mais je voudrais mettre l'animation dans une autre fonction pour que je puisse y accéder à partir de différents @IBActions et ne pas avoir à réécrire le code encore et encore , mais je n'ai aucune idée de comment je peux transférer le "expéditeur" à la nouvelle fonction. Alors comment je dirais la nouvelle fonction (appelons-le animateButton()) quel expéditeur a été pressé de sorte que le sender.transform = CGAffineTransform (scaleX: 1.2, y: 1.2) ... sait quel bouton animer?
Merci
Merci. Je n'ai pas pensé aux extensions. Cela fonctionne bien! – RjC