Как установить статическую ячейку UITableView на пользовательскую высоту?

У меня есть UITableView со статическими ячейками, и я пытаюсь изменить высоту ячейки, когда она соответствует условию. Условия выполняются, но высота ячеек не меняется.

Код, который я использую,

[self.tableView setRowHeight:10];

И

self.tableView rowHeight = 10;

Ни один из них не изменит высоту строки ячеек. Есть ли другой способ их изменить?


person user1282180    schedule 23.06.2012    source источник
comment
возможный дубликат Различная высота для альтернативной ячейки в UITableView   -  person outis    schedule 15.07.2012


Ответы (3)


Вам необходимо реализовать следующий метод делегата в вашем табличном представлении .m:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return customTableCellHeight;
}

А затем измените значение customTableCellHeight:

if (condition) {
    customTableCellHeight = 80; // or whatever
}

Когда высота ячейки таблицы должна измениться (например, при изменении условия, вам нужно вызвать

 [self.tableView reloadData]; //This calls heightForRowAtIndexPath for all cells
person JulenissensHjelper    schedule 23.06.2012
comment
Ему не нужен вызов reloadData. - person Mr Rogers; 27.12.2013
comment
Вам нужно вызывать reloadData не внутри heightForRowAtIndexPath, а вне его, когда изменяется условие. Это приведет к пересчету высот и позволит динамически изменять размеры ячеек. - person kgiannakakis; 23.05.2014

вы можете использовать это для всей строки таблицы

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
      return 100
    }
person TeckPress.Net    schedule 09.10.2015

Вы можете создать динамическую ячейку с высотой текста, затем вы можете установить статическую и динамическую ячейку как в виде таблицы

Вот ссылка на динамическую ячейку с текстом Как изменить ячейку высота динамически в статической ячейке UITableView

person Anit Kumar    schedule 19.02.2016