[Swift] Button zufällig positionieren

MacAlex2015

Macoun
Registriert
01.04.15
Beiträge
122
Hallo iOS-Xcode-Profis,

bisher eher Audio-Anwendungen getestet, möchte für meinen Sohn eine kleine App programmieren, bei der ein Button nach dem "Klick" darauf seine Position zufällig ändert.

Da es unter iOS nicht mit einfachen Button.x und Button.y getan ist, sondern wohl über die Constraints programmiert werden muss, habe ich damit so einiges getestet, komme aber aktuell nicht weiter. Ich denke, es hängt daran, dass ich nach jedem Klick einen neuen Constraint kreiere, aber die bisherigen nicht lösche?
Wie kann ich das lösen?

Code:
@IBAction func clickButton(_ sender: UIButton) {
        let y_zufall = CGFloat(Int(arc4random_uniform(400)) - 200)
        NSLayoutConstraint(item: catchButton, attribute: NSLayoutAttribute.centerY, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: y_zufall).isActive = true
    }

Geht das irgendwie mit dem "pop"-Command?

Vielen Dank
Alexander
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Du brauchst keine neuen Constraints erzeugen. Man kann einfach bei den bestehenden Constraints den Wert der Constant-Property ändern. Nach der Änderung muss man dann nur dem View per layoutIfNeeded() sagen, dass die Änderungen auch angewendet werden.
 

MacAlex2015

Macoun
Registriert
01.04.15
Beiträge
122
Danke, MacApple!
Das wäre wunderbar, wenn das doch so einfach möglich ist. Hast du den Befehl sofort griffbereit?
Sonst wühle ich mich auch gerne durch google.