Таинственные неприятности с методом sizeWithFont - PullRequest
0 голосов
/ 15 января 2012

ребята.У меня есть UITableView с разными ячейками, и у меня есть код, который считает высоту.В одном проекте он работает идеально, но во втором он возвращает высоту, равную 0. Что может быть причиной этого?Мой код:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    CGFloat cellWidth = 320.0f;
    CGSize size = [cell.textLabel.text sizeWithFont:cell.textLabel.font constrainedToSize:CGSizeMake(cellWidth, CGFLOAT_MAX) lineBreakMode:cell.textLabel.lineBreakMode];
    CGFloat height = size.height;
    NSLog(@"Height: %f", height);
    return height;
}

1 Ответ

3 голосов
/ 15 января 2012

Метод делегата heightForRowAtIndexPath: вызывается перед методом делегата cellForRowAtIndexPath:.В вашем коде вы вычисляете высоту вашей ячейки на основе cell.textLabel.text, но текст в ячейке еще не установлен.

Вам необходимо получить текст для использования в этом методе откуда-то ещечем ячейка таблицы (вероятно, вы можете получить ее откуда угодно, когда устанавливаете значение textlabel.text в cellForRowAtIndexPath).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...