У меня есть UITableViewCell, который имеет два UITextFields (без границ). Для настройки горизонтальной компоновки используются следующие ограничения.
 @"|-10-[leftTextField(>=80)]-(>=10)-[rightTextField(>=40)]-10-|"
Ничего необычного и работает так, как ожидалось.
 
Как вы можете видеть, верхний textField имеет правильный размер. Нижний текстовый экран начинался с пустого текста, а из-за пустого текста он составлял 80 точек. Когда я ввожу текст в текстовый текст редактирования, текст прокручивается влево, он не меняет его ширины.
Мне это не нравится, ширина textField должна настраиваться, когда пользователь вводит этот текст.
По-моему, это должно работать из коробки. Внедряя IBAction для события UIControlEventEditingChanged, я могу подтвердить, что типизация фактически изменяет intrinsicContentSize UITextField.
Но хорошо, ширина не меняется до тех пор, пока textField больше не станет первым ответчиком. Если я поместил курсор в другой текстовый фильтр, будет задана ширина отредактированного textField. Это немного поздно для того, что я хочу.
Эти прокомментированные строки - это то, что я пробовал без успеха:
- (IBAction)textFieldDidChange:(UITextField *)textField {
    [UIView animateWithDuration:0.1 animations:^{
//        [self.contentView removeConstraints:horizontalConstraints];
//        [self.contentView addConstraints:horizontalConstraints];
//        [self.contentView layoutIfNeeded];
//        [self.contentView setNeedsLayout];
//        [self.contentView setNeedsUpdateConstraints];
    }];
    NSLog(@"%@", NSStringFromCGSize(textField.intrinsicContentSize));
}
Кто-нибудь знает, что мне не хватает? Что я могу попытаться сделать этой работой?