2015-05-18 4 views
3

Я использую UITableView и несколько пользовательских ячеек. Каждая ячейка имеет собственную высоту (ячейки включают UICollectionView, UITableView и еще несколько таможни UIView). Более того, таможенные ячейки (все они) загружаются с .xib.Таблица Высота ячеек таблицы Динамически + загрузка с .xib

В принципе, высота ячейки должна определяться с помощью модели (mvc) или равна static.

В моем случае, я могу определить высоту ячейки после того, как я создаю экземпляр каждый из них, й loadNibNamed:owner:options: или dequeueReusableCellWithIdentifier:forIndexPath: (я не забочусь о повторном использовании, это не пункт здесь), потому что мне нужно, чтобы раздуть содержимое ячейки ,

Насколько я знаю, методы, вызываемые UITableViewDelegate и UITableViewDataSource, не документированы, поэтому мне не нужно учитывать порядок их звонков.

Как определить высоту ячейки без экземпляра? И без Magic numbers.

+0

по вашему вопросу, вы имели в виду, что хотите определить высоту ячейки во время выполнения? – Vizllx

+0

@Vizllx, Да, высота моей ячейки зависит от сетевых ответов. – gran33

ответ

-1

Вам нужно рассчитать высоту строк в следующих методах UITableViewDelegate на основе модели

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 

Если расчет вашего роста основан на реакцию сети, обновление модели данных, когда будет получен ответ и называем [self.tableView reloadData ]

+0

Спасибо за беспокойство, но, пожалуйста, снова прочитайте мой вопрос. И я знаю, как работает UIItableView со статической высотой. Я спросил о динамике. – gran33

+1

Если ваш расчет высоты основан на ответе сети, обновите свою модель данных при получении ответа и вызовите [self.tableView reloadData] –

+0

. Что здесь предлагает, это плохая производительность. 'reloadData' для меня не подходит. – gran33

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