Когда устанавливается значение contentSize UITableView?

У меня есть непрокручиваемый 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и это, вероятно, сделало бы это, но кажется неэффективным перезагружать всю таблицу, когда я просто вставляю одну ячейку.

45
задан Dharmesh Dhorajiya 20 March 2015 в 15:09
поделиться