ios cambiar la restricción programáticamente

Estoy usando autolayout con una restricción. El espacio superior a supervisión es 100

Ahora quiero cambiar esto para que cuando el usuario rote el dispositivo al paisaje. El espacio superior a la supervisión sea de 50

¿Se puede hacer esto en el momento del layout?

¿Cómo se puede hacer esto en time de ejecución?

Bueno, si sus 50 px para el paisaje y 100 para el retrato pueden derivarse de alguna manera por las relaciones con las subvistas de hermanos y las correcciones fijas a los límites de la supervisión, entonces sí, esto se puede hacer "en time de layout", y eso es realmente lo que la distribución automática es destinado a ser para

De lo contrario, necesitaría tener una reference a la constraint , entonces en el willRotateToInterfaceOrientation:duration: necesitará cambiar el valor de la constant de esta constraint y llamar a layoutIfNeeded para la supervisión.

 - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; self.myConstraint.constant = (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) ? 50. : 100.; [self.someView layoutIfNeeded]; } 

(escrito en el browser, puede tener errores)