La rotation del iPad restablece la animation de las vistas para comenzar

Cuando gire el iPad, todos los componentes animados (por ejemplo, vistas / botones) volverán a su position original en cuanto se cargaron por primera vez. hay alguna forma de prevenir esto?

Aquí es cómo animo object cuando hago clic en un button, por ejemplo

- (IBAction)button1Pressed:(id)sender{ [UIView animateWithDuration:ANIMATION_SPEED delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:(void (^)(void)) ^{ self.view.userInteractionEnabled = NO; _button1.center = CGPointMake(73.01, 419.0); _button2.center = CGPointMake(750.0, 419.0); _button3.center = CGPointMake(850.0, 419.0); _button4.center = CGPointMake(950.0, 419.0); CGRect theFrame = _loginView.frame; theFrame.size.width = 576.f; _View1.frame = theFrame; _View2.frame = CGRectMake(_button2.center.x + 44.0, _button2.center.y / 2 - 89.0, 0.0, 597.0); _View3.frame = CGRectMake(_button3.center.x + 44.0, _button3.center.y / 2 - 89.0, 0.0, 597.0); _4View.frame = CGRectMake(_button4.center.x + 44.0, _button4.center.y / 2 - 89.0, 0.0, 597.0); } completion:^(BOOL finished){ self.view.userInteractionEnabled = YES; }]; } 

Todavía soy bastante nuevo, así que todos los detalles serán apreciados 🙂

Te sugiero que crees restricciones para la interfaz que deseas animar. Luego agregue reference a su file de encabezado para esas restricciones como para cualquier elemento de vista.

introduzca la descripción de la imagen aquí

Cuando desee animar una vista, ahora tiene que actualizar sus restricciones y solicitar el layout de las vistas.

 [UIView animateWithDuration:0.2 animations:^{ //in this case, I add 44 to my button Y position, so it will goes down 44px buttonYConstraint.constant += 44; [self.view layoutIfNeeded]; } ] //Now don't forget to update constraints [self.view updateConstraints]; 

Al desactivar el layout automático ubicado debajo del 'Documento de generador de interfaces', esto se solucionó de manera rápida 🙂