Я хочу рассчитать размер содержимого моего UITableView
. Я использую автозапуск с высотой UITableViewAutomaticDimension
.Размер содержимого UITableView при использовании автоматического макета
Попытался получить [UITableView contentsize]
после перегрузки стола, в этом случае высота рассчитывается на основе estimatedRowHeight
.
self.tableView.estimatedRowHeight = 50;
self.tableView.rowHeight = UITableViewAutomaticDimension;
Делегат -
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewAutomaticDimension;
}
Попытка получить размер контента и назначить его на высоте Constrain.
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
self.tableHeightConstraint.constant = self.tableView.contentSize.height;
Любые предложения? Заранее спасибо.
Edit:
Наконец я решил свою проблему с некоторой подстройкой. Я изменил высоту таблицы до макс (в моем случае 300 макс.), Прежде чем перезагружать данные в таблице, поэтому в таблице есть пространство для изменения размера всех ячеек.
self.tableHeightConstraint.constant = 300;
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
self.tableHeightConstraint.constant = self.tableView.contentSize.height;
Спасибо за помощь.
Не могли бы вы объяснить подробно проблему? –
Я хочу содержимое таблицы. поэтому я могу изменить рамку tableview & superview в отношении содержимого. Я использую autolayout и UITableViewAutomaticDimension. поэтому он не работает точно. – OMK
Если вы используете 'Autolayout', вы не можете изменить рамку. Вам нужно играть с 'NSLayoutContraints'. –