Высота uitableview по количеству строк в заголовке - PullRequest
1 голос
/ 17 октября 2011

У меня есть этот код, но он выходит из строя.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
    if (cell.textLabel.numberOfLines == 2) {
        return 100;
    } else {
        return 80;
    }
}

Проблема здесь:

UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];

Ответы [ 2 ]

4 голосов
/ 18 октября 2011

Полагаю, вы построили здесь бесконечную рекурсию. Когда вас спрашивают о высоте, вы запрашиваете ячейку, которая запрашивает высоту ... Вы должны выполнять вычисления на основе модели данных, а не самой ячейки.

2 голосов
/ 18 октября 2011

Попробуйте использовать метод источника данных табличных представлений [self tableView:tableView cellForRowAtIndexPath:indexPath] вместо:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    if (cell.textLabel.numberOfLines == 2) {
        return 100;
    } else {
        return 80;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...