Установить высоту ячейки UITableView (содержит динамический UICollectionView) - PullRequest
0 голосов
/ 23 июня 2018

МОЯ ЦЕЛЬ: Каждая ячейка UITableView содержит 1 UIColletionViewController ( число динамических элементов )

ПРОБЛЕМА: UITableView 'Делегат HeightForRow, является вызовомперед завершением загрузки UIColletionViewController его представление + высота.

РЕЗУЛЬТАТЫ: UITableView 'HeightForRow = 0

Как правильно установить делегат UITableView "HeightForRow"? высота содержимого UIColletionViewController еще не загружена

enter image description here

результат должен быть таким, как на следующем рисунке:

enter image description here

УЖЕ ПОПРОБОВАТЬ:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableView.estimatedRowHeight = 300.0;
    self.tableView.rowHeight = UITableViewAutomaticDimension;
}

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

   //not working well
    return UITableViewAutomaticDimension;

    //also tried this:
    ResultsTableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    Object * object = [_array objectAtIndex:indexPath.section];
    [cell setCellObject:object]; //this is build the cell ui
    return cell.collection.rect.size.height;
}

1 Ответ

0 голосов
/ 24 июня 2018

возвращает «размер содержимого» * ​​1002 * (вместо view.size)

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

    //1. get the cell (by identifier)
    ResultsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ResultsTableViewCell"];

    //2. build cell ui
    Object * object = [_array objectAtIndex:indexPath.section];
    [cell buildCell:object];

    //3. return content size
    return cell.collection.collectionView.contentSize.height;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...