¿Cómo muevo una label y animo el cambio usando Auto Layout?

Estoy intentando mover un UILabel a la izquierda y animar el movimiento. El UILabel se crea a partir de un guión gráfico y tiene las siguientes restricciones:

introduzca la descripción de la imagen aquí

Pero si trato de hacer que el espacio posterior sea constante, digamos, 150 en lugar de 20 para moverlo a la izquierda, rebota a la izquierda extrañamente por un segundo y luego vuelve a la mitad. Entonces bajé la prioridad de la limitación principal izquierda a 900, pero sucedió lo mismo.

Entonces intenté:

self.textToReadLabel.transform = CGAffineTransformMakeTranslation(-500.0, 0.0); 

Lo mueve, pero si utilizo una animation, se desliza fuera de la pantalla, se vuelve a deslizar y luego descansa en el lugar donde debería … después de todos esos teatros.

¿Cómo exactamente lograría esto?

Entendimiento de lo que sucede cuando presiono el button para mover la label:

  self.textHorizontalPlacementConstraint.constant = 150.0; self.textHorizontalPlacementConstraint2.constant = -110.0; [UIView animateWithDuration:1.0 animations:^{ [self.view layoutIfNeeded]; }]; CATransition *animation = [CATransition animation]; animation.duration = 0.5; animation.type = kCATransitionFade; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [self.textToReadLabel.layer addAnimation:animation forKey:@"changeTextTransition"]; // Change the text self.textToReadLabel.text = @"text"; } 

Video de cómo se ve:

Puede establecer puntos de venta de sus restricciones en el Generador de interfaces y, luego, cuando desee animar el cambio, modifique su código de la siguiente manera:

  [UIView animateWithDuration:2.0 animations:^{ //Change your constraints from code. }]; 

Por ejemplo: si tengo una restricción de distancia izquierda, puedo cambiarla directamente de la siguiente manera:

  [UIView animateWithDuration:2.0 animations:^{ //Change your constraints from code. self.leftSpacing.constant = self.leftSpacing.constant+20; [self.view layoutIfNeeded]; }]; 

El código anterior animará tu vista de izquierda a derecha en 20 puntos.

ACTUALIZAR:

¿Ha intentado agregar múltiples restricciones: el valor del espaciado debe ser menor o igual a decir: 200 pero mayor o igual a 20. Creo que eso puede ayudar.