2011-08-22 1 views
16

Я использую UITableView, и я хочу изменить высоту различных ячеек. Но я не хочу использовать reload данные для этого beacause. В моем представлении таблицы содержится UITextView, с которым я сейчас редактирую, и UIKeyBoard.Как изменить высоту ячейки в uitableview без перезагрузки данных

ответ

16

Вы ищете метод reloadRowsAtIndexPaths: в UITableView. Это приведет к перерасчету высоты (и последующей перерисовки) определенных ячеек. Он может даже анимировать настройку, чтобы вы могли выполнять обновление в режиме реального времени по мере прокрутки пользователя, так что представление таблицы не «рывком» или «заиканием», пока высота пересчитывается. Я просто успешно реализовал это, чтобы сделать то, что вы описали.

Источник: Update UITableViewCell without reload

+4

перегрузочного стола может закрыть клавиатуру, если высота Ей изменения. – aksommerville

+0

Очевидно. Это верно в любое время, когда вы перерисовываете ввод в UIKit ... –

+4

Вопрос конкретно просят сделать это, не отпуская клавиатуру. reloadRowsAtIndexPaths отклоняет клавиатуру –

0

Вы можете вызвать beginUpdates && endUpdates, они будут причина высоты ячеек таблицы будут recaluclated, без перезагрузки всей клетки

  UIView.setAnimationsEnabled(false) 

      self.tableView.beginUpdates() 
      self.tableView.endUpdates() 
      // Re-enable animations 
      UIView.setAnimationsEnabled(true) 

 Смежные вопросы

  • Нет связанных вопросов^_^