Modificación de restricciones

Como un ejercicio para aprender el desarrollo de Swift y iOS, decidí hacer el juego Breakout . Justo al principio encontré un problema simple, que no puedo encontrar una solución simple para.

Comencé con la pala. gameView un gameView que será el contenedor del juego. También creé el paddleView y agregué restricciones que pondrán a la pala en la position correcta. Esto es lo que tengo:

introduzca la descripción de la imagen aquí

También agregué un reconocimiento de gesto de pan que posiciona la position del centro de la center.x

Aquí está el problema: cuando cambio de orientación, la paleta se mueve al centro independientemente de la position anterior al cambio.

introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

Intenté crear una salida de la Center X Alignment Constraint , eliminarla en viewWillTransitionToSize y restaurar la position anterior en viewDidLayoutSubviews pero el origin.x la paleta origin.x siempre fue 0. También traté de modificar la restricción, tal vez cambiando el multiplier , pero todavía no fue exitoso.

Sé que hay una solución simple a esto, pero no puedo encontrarlo.

¿Alguien puede ayudar?

No debe modificar view center.x en su manejador de gestos panorámicos porque sus restricciones se romperán. En su lugar, debe crear una salida de restricción (supongamos que para la restricción: view.center.x igual superview.center.x) y cambie su valor constante en su manejador de panorámicas.

 @IBOutlet weak var centerAlignment: NSLayoutConstraint! @IBAction func handleDrag(sender: UIPanGestureRecognizer) { let xPosition = sender.locationInView(self.view).x if xPosition >= 0 && xPosition <= self.view.frame.size.width{ centerAlignment.constant = xPosition - self.view.frame.size.width / 2 } else if xPosition > self.view.frame.size.width { centerAlignment.constant = self.view.frame.size.width / 2 } else { centerAlignment.constant = -self.view.frame.size.width / 2 } }