У меня есть UITableViewController, который содержит пользовательскую ячейку. Каждая ячейка была создана с помощью пера и содержит один не прокручиваемый UITextView. Я добавил ограничения внутри каждой ячейки, чтобы ячейка адаптировала свою высоту к содержимому UITextView. Итак, изначально мой контроллер выглядит так:
Теперь я хочу, чтобы, когда пользователь вводил что-то в ячейку, его содержимое автоматически адаптировалось. Этот вопрос задавался много раз, см., В частности, этот или второй ответ здесь. Таким образом, я написал следующий делегат в моем коде:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text {
[self.tableView beginUpdates];
[self.tableView endUpdates];
return YES;
}
Однако это приводит к следующему странному поведению: все ограничения игнорируются, а высота всех ячеек уменьшается до минимального значения. Смотрите картинку ниже:
Если я прокручиваю вниз и вверх tableView, чтобы инициировать новый вызов cellForRowAtIndexPath, я восстанавливаю правильные высоты для ячеек:
Обратите внимание, что я не реализовал heightForRowAtIndexPath, так как я ожидаю, что autoLayout позаботится об этом.
Может кто-нибудь сказать мне, что я сделал не так или помочь мне здесь? Большое спасибо !