Я подклассифицирую UITextField, чтобы добавить ярлык с левой стороны. Я использую автозапуск для компоновки ярлыка. Тем не менее, я получаю эту аварию:Autolayout в UITextField: автоматический макет еще требуется после выполнения -layoutSubviews
Вот как я делаю свой код макета:
- (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];
}
Когда я не делать какие-либо коррективы в текстовое поле, это работает отлично.
Однако, если я пытаюсь установить замещающий текст, я получаю это исключение:
, истекающее приложение из-за неперехваченное исключение «NSInternalInconsistencyException», причина: «Auto Layout еще требуется после выполнения -layoutSubviews. Реализация DDSegmentedTextField -layoutSubviews требует вызова super. '
Однако я не переопределяю -layoutSubviews.
С кем это столкнулось? Что я делаю не так?
Спасибо!
Показать код, задающий текст заполнителя. –
его просто self.tipField.placeholder = @ "placeholder"; в представленииDidLoad контроллера –