Я подклассифицирую UITextField, чтобы добавить ярлык с левой стороны. Я использую автозапуск для компоновки ярлыка. Тем не менее, я продолжаю получать этот сбой:
Вот как я делаю свой код макета:
- (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", причина: "Автоматическая компоновка по-прежнему требуется после выполнения -layoutSubviews. Реализация DDSegmentedTextField для -layoutSubviews требует вызова super. '
Однако я не переопределяю -layoutSubviews.
Кто-нибудь сталкивался с этим? Что я делаю неправильно?
Спасибо!