У меня есть непрокручиваемый UITableView
в UIScrollView
. Я установил размер кадра UITableView
равным его размеру содержимого.
Когда я добавляю строку в UITableView
, я вызываю insertRowsAtIndexPaths:withRowAnimation
: в UITableView
. Затем я вызываю метод для изменения размера фрейма UITableView
:
- (void)resizeTableViewFrameHeight
{
// Table view does not scroll, so its frame height should be equal to its contentSize height
CGRect frame = self.tableView.frame;
frame.size = self.tableView.contentSize;
self.tableView.frame = frame;
}
Похоже, что contentSize
на данный момент не обновлен. Если я вручную рассчитываю раму в приведенном выше методе на основе количества рядов и секций, то метод работает правильно.
Мой вопрос: как я могу заставить UITableView
обновить его contentSize
? Я полагаю, что мог бы вызвать reloadData
и это, вероятно, сделало бы это, но кажется неэффективным перезагружать всю таблицу, когда я просто вставляю одну ячейку.