У меня возникла проблема с UITextView внутри пользовательской ячейки. TextView отлично работает помимо моей проблемы. У меня есть настройка UITextViewDelegate, поэтому, когда что-то происходит с текстовым представлением, у меня есть те методы, которые связаны.UITextView и динамическое обновление высоты ячейки на основе содержимого текстового представления?
Я хотел бы знать, как я могу создать свою собственную ячейку, динамически увеличивая ее высоту по мере того, как пользователь вводит. Как только пользователь нажимает на конец строки текстового поля, также имеет текстовое представление, которое автоматически добавляет другую строку. Я искал в Интернете какое-то время, и большинство примеров для этой проблемы находятся в объективе c. Не очень быстрый код. Буду признателен за любую помощь.
У меня есть клетка зацепили в файле Tableview как таковой ..
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: cellCustom = the_TableView.dequeueReusableCellWithIdentifier("cell") as! cellCustom
return cell
}
В пользовательском файле ячейки, у меня есть делегатов настроенные ...
func textViewDidChange(textView: UITextView) {
}
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
return true
}
Я попытался некоторые вещи, такие как ...
self.textview.sizeToFit()
self.the_TableView.rowHeight = UITableViewAutomaticDimension
self.the_TableView.estimatedRowHeight = 47
Когда я это сделал, текст просмотрел весь текст, но не увеличился в размере пока я не ушел в отставку, это первый ответчик и прокручивается, пока камера не исчезнет. Затем, когда ячейка отскакивает назад, она обновляется.
Я уже добавил все ограничения, и проект имеет нулевые риски или ошибки и работает отлично.
Чтобы уточнить, я хотел бы, чтобы uitextview изменял высоту в зависимости от содержимого, которое пользователь вводит при вводе, что означает, что пользовательская ячейка и tableview должны будут обновляться. Подумайте о ясном приложении на iPhone. Как будто. Ячейка обновляется динамически по мере того, как пользователь вводит значение, увеличивая высоту, добавляя новую строку, когда пользователь достигает конца. Это то, к чему я стремлюсь.
Хотя я не новичок в разработке любыми способами, я до сих пор не дошел до этой стадии разработки. Любая помощь будет чрезвычайно оценена. Поскольку у меня есть пользовательская ячейка в другом файле, мне трудно получить доступ к моим элементам ячейки из файла tableview. Я думаю, новичок. Спасибо, что прочитал это.
Цепной свои ограничения, TextView в верхней части электролизера , textView до нижней части ячейки и установите ограничение высоты текста в виде фиксированной высоты. И объявление d другие ограничения, которые вам нужны. Затем, после того как вы изменили ограничение по высоте textView, вы вызываете 'layoutIfNeeded()' для текущей ячейки –
@pandarencodemaster Спасибо за ввод. Я уже выполнил все свои ограничения. Однако добавление ограничения высоты вызывает множество рисков в отладчике. Ограничения отлично работают во всех устройствах. Кроме того, не могли бы вы рассказать о 'layoutIfNeeded'? – RandomDude
Если вы хотите, чтобы ваши обновления по ограничениям работали, вы должны использовать layoutIfNeeded, чтобы они вступили в силу сразу после изменения любого ограничения. –