Delegado cuando se actualizan las restricciones

Me enfrento a un problema al usar el layout automático de Storyboard con UIScrollView. Estoy actualizando una restricción de un UIScrollView, y después de establecer el tamaño de contenido de scrollview. Pero la restricción UIScrollView toma un poco de time para actualizar e inicialmente UIScrollView no puede desplazarse debido a una altura mayor que una vista. No puedo cambiar la implementación actual.

¿Hay alguna forma, notificación o algún método de delegado para verificar que las restricciones se actualicen? Para que pueda hacer más cambios.

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *scrollViewHieghtConstraint; self.scrollViewHieghtConstraint.constant = 500; [self.scrollView updateConstraints]; [self.scrollView setContentSize:CGSizeMake(0, 1000)]; 

Puede usar - (void)updateViewConstraints selector de UIViewController .

También puede usar - (void)updateConstraints selector de UIView si ha extendido dicha vista.

No puede llamar -updateConstraints directamente. Tienes que marcar las restricciones de la vista como sucias y iOS llamará a ese método en el próximo ciclo de actualización.

En la implementación de UIViewController, agregue esto cuando necesite la restricción para cambiar:

 self.scrollViewHieghtConstraint.constant = 500; [self.view setNeedsLayout]; 

Estoy asumiendo que UIScrollView es una subview de la vista de UIViewController. Si no es así, llame a -setNeedsLayout en la vista principal del scrollview.

Y si necesita saber cuándo las subvistas ya están en el lugar correcto, tiene una callback para UIViewController, llamada -viewDidLayoutSubviews