Как я могу увеличить высоту UITableViewCell динамически - PullRequest
2 голосов
/ 22 августа 2010

У меня есть UITableView, который включает в себя список UITableViewCells. И я установил высоту UITableViewCells в методе (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath.

Однако мне нужно увеличить высоту UITableViewCell, когда она выбрана. Например, высота UITableViewCell должна увеличиваться на 100 пикселей при выделении ячейки, кто-нибудь знает, как это сделать?

Ответы [ 2 ]

11 голосов
/ 22 августа 2010
  1. Сохранение выбранного индекса в вашем контроллере.
  2. Возвращает высоту ячейки в зависимости от этого индекса:

    CGFloat height = 30.0f;
    ...
    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
        return indexPath.row == selectedIndex ? height+100 : height;
    }
    
  3. Обновление геометрии табличного представления в методе didSelectRowAtIndexPath (пустой блок между beginUpdates и endUpdates делает свое дело):

    - (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        index = indexPath.row;
        [tableView beginUpdates];
        [tableView endUpdates];      
    }
    
0 голосов
/ 22 августа 2010

Сделайте ваш метод делегата

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

возвращает (новую) правильную высоту и заставляет представление таблицы перезагрузить заданный путь.

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