Autolayout en UITextField: todavía se requiere el diseño automático después de ejecutar -layoutSubviews
Estoy subclasificando UITextField para agregar una etiqueta en el lado izquierdo. Estoy usando autolayout para diseñar la etiqueta. Sin embargo, sigo recibiendo este bloqueo:
Así es como estoy haciendo mi código de diseño:
- (void)updateConstraints {
self.segmentLabel.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *constraint;
constraint = [NSLayoutConstraint constraintWithItem:self.segmentLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0.0f];
[self addConstraint:constraint];
constraint = [NSLayoutConstraint constraintWithItem:self.segmentLabel attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeading multiplier:1.0 constant:0.0f];
[self addConstraint:constraint];
constraint = [NSLayoutConstraint constraintWithItem:self.segmentLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0f];
[self addConstraint:constraint];
constraint = [NSLayoutConstraint constraintWithItem:self.segmentLabel attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:self.segmentWidth];
[self addConstraint:constraint];
[super updateConstraints];
}
Cuando no hago ningún ajuste en el campo de texto, esto funciona bien.
Sin embargo, si intento establecer el texto del marcador de posición, obtengo esta excepción:
Finalización de la aplicación debido a la excepción no detectada 'NSInternalInconsistencyException', razón: 'Todavía se requiere el diseño automático después de ejecutar -layoutSubviews. La implementación de DDSegmentedTextField de -layoutSubviews necesita llamar super '.
Sin embargo, no estoy anulando -layoutSubviews.
¿Alguien ha encontrado esto? ¿Qué estoy haciendo mal?
¡Gracias!