J'essaye de randomiser une contrainte principale pour un bouton dans swift. Pour l'activer, je sélectionne un bouton. Quand je sélectionne le bouton pour la première fois, ça marche bien, mais après tout ça, ça montre beaucoup d'erreurs dans le NSLog. Voici le code:Comment obtenir un CGFloat aléatoire pour une contrainte?
let button = UIButton()
@IBAction func start(sender: UIButton) {
let randomNumber = Int(arc4random_uniform(180) + 30)
let cgfloatrandom = CGFloat(randomNumber)
button.hidden = false
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activateConstraints([
button.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: cgfloatrandom),
button.topAnchor.constraintEqualToAnchor(view.topAnchor, constant: 390),
button.widthAnchor.constraintEqualToConstant(75),
button.heightAnchor.constraintEqualToConstant(75)
])
}
Aidez-nous s'il vous plaît. Je vous remercie. Anton
Vous devez supprimer la contrainte ajoutée précédemment lors de la deuxième exécution car la précédente sera en conflit avec la nouvelle. Le premier dit "200 pixel away", le second dit "100 pixel away": ça ne va pas bien finir;) Ce que vous devez faire est de créer la contrainte dans le constructeur de l'interface, connectez-le comme sortie et changez seulement le constante sur cette sortie au lieu de créer de nouvelles contraintes tout le temps – luk2302
@ luk2302 Comme ceci?: 'button.removeConstraints ([button.leadingAnchor.constraintEqualToAnchor (view.leadingAnchor)])' –
pourquoi ne pas simplement maintenir la contrainte principale, puis changer le valeur "constante"? –