Désactiver un bouton

Je veux désactiver un bouton (UIButton) sur iOS après avoir cliqué dessus. Je suis nouveau dans le développement pour iOS mais je pense que le code équivalent sur objective - C est le suivant:

button.enabled = NO;

Mais je ne pouvais pas faire ça sur swift.

63
demandé sur Leo Natan 2014-08-27 14:22:19

6 réponses

La valeur booléenne pour NO dans Swift est false.

button.isEnabled = false

Devrait le faire.

Voici la documentation Swift pour la propriété {[4] de UIControl.

143
répondu KerrM 2017-01-24 16:05:44

Si vous voulez que le bouton reste statique sans l'apparence "pressée":

// Swift 2
editButton.userInteractionEnabled = false 

// Swift 3
editButton.isUserInteractionEnabled = false 

Rappelez-vous:

1 IBOutlet est --> @IBOutlet weak var editButton: UIButton!

2) le Code ci-dessus va dans viewWillAppear

28
répondu Daviiid 2016-12-11 15:41:13

La façon dont je fais cela est la suivante:

@IBAction func pressButton(sender: AnyObject) {
    var disableMyButton = sender as? UIButton
    disableMyButton.enabled = false
}

L'IBAction est connecté à votre bouton dans le storyboard.

Si vous avez votre bouton configuré comme une prise:

    @IBOutlet weak var myButton: UIButton!

Ensuite, vous pouvez accéder aux propriétés activées en utilisant le . notation sur le nom du bouton:

    myButton.enabled = false
8
répondu Krivvenz 2015-09-03 10:52:01

Désactiver un bouton sur Swift 3:

yourButton.isEnabled = false
4
répondu Gilad Brunfman 2016-10-05 13:03:12

Le bouton peut être désactivé dans Swift 4 par le code

@IBAction func yourButtonMethodname(sender: AnyObject) {
 yourButton.isEnabled = false 
}
0
répondu Tina Detroja 2018-04-30 06:00:48

Vous pouvez activer / désactiver un bouton en utilisant la propriété isEnabled ou isUserInteractionEnabled.

La différence entre deux est:

  • isEnabled est une propriété de UIControl (super classe de UIButton) et il , a des effets visuels (c'est à dire en grisé) d'activer/désactiver

  • isUserInteractionEnabled est une propriété de UIView (super classe de UIControl) et n'a aucun effet visuel mais atteint le but

Utilisation :

myButton.isEnabled = false // Recommended approach

myButton.isUserInteractionEnabled = false // Alternative approach
0
répondu Jayprakash Dubey 2018-06-14 06:32:28