Autolayout no UITextField: o layout automático ainda é necessário após a execução de -layoutSubviews
Estou subclassificando UITextField para adicionar um rótulo no lado esquerdo. Estou usando o layout automático para fazer o layout do rótulo. No entanto, continuo recebendo esse erro:
Veja como estou fazendo meu código de layout:
- (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];
}
Quando não faço nenhum ajuste no campo de texto, isso funciona bem.
No entanto, se eu tentar definir o texto do espaço reservado, recebo esta exceção:
Finalizando o aplicativo devido à exceção não capturada 'NSInternalInconsistencyException', motivo: 'Layout automático ainda é necessário após a execução de -layoutSubviews. A implementação de -layoutSubviews do DDSegmentedTextField precisa chamar super. '
No entanto, não estou substituindo -layoutSubviews.
Alguém já encontrou isso? O que estou fazendo errado?
Obrigado!