Я использую UITableView, и я хочу изменить высоту различных ячеек. Но я не хочу использовать reload данные для этого beacause. В моем представлении таблицы содержится UITextView, с которым я сейчас редактирую, и UIKeyBoard.Как изменить высоту ячейки в uitableview без перезагрузки данных
16
A
ответ
16
Вы ищете метод reloadRowsAtIndexPaths: в UITableView. Это приведет к перерасчету высоты (и последующей перерисовки) определенных ячеек. Он может даже анимировать настройку, чтобы вы могли выполнять обновление в режиме реального времени по мере прокрутки пользователя, так что представление таблицы не «рывком» или «заиканием», пока высота пересчитывается. Я просто успешно реализовал это, чтобы сделать то, что вы описали.
Источник: Update UITableViewCell without reload
0
Вы можете вызвать beginUpdates && endUpdates
, они будут причина высоты ячеек таблицы будут recaluclated, без перезагрузки всей клетки
UIView.setAnimationsEnabled(false)
self.tableView.beginUpdates()
self.tableView.endUpdates()
// Re-enable animations
UIView.setAnimationsEnabled(true)
перегрузочного стола может закрыть клавиатуру, если высота Ей изменения. – aksommerville
Очевидно. Это верно в любое время, когда вы перерисовываете ввод в UIKit ... –
Вопрос конкретно просят сделать это, не отпуская клавиатуру. reloadRowsAtIndexPaths отклоняет клавиатуру –