Установить высоту программно для одного UITableViewCell?

Мне нужно установить высоту для одного UITableViewCell в моем UITableView программно. Как я могу это сделать?

Мне нужно, чтобы эта одна ячейка была высотой в 150 пикселей, а все остальные могут по-разному подниматься на 44 пикселя.

Спасибо.

Ответ 1

Существует функция делегата для высоты UITableViewCell.

Здесь вы указываете indexPath этой конкретной ячейки и возвращаете для нее высоту

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(indexPath.section == yourSection && indexPath.row == yourRow) {
        return 150.0;
    }
    // "Else"
    return someDefaultHeight;
}

Ответ 2

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

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

    if (indexPath.row == 0) { //change 0 to whatever cell index you want taller
        return 150;
    }
    else {
        return 44;
    }   
}

Ответ 3

SWIFT ANSWER

Укажите, какой раздел и строку вы хотите изменить (помните, что счетчик начинается с 0, а не 1) в методе heightForRowAtIndexPath.

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat{
    if indexPath.section == 0 && indexPath.row == 0{
        return 150
    }
    return 44.0
}

Ответ 4

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

Вы можете установить значение для ячейки по определенному пути индекса с помощью этого метода и по умолчанию для других ячеек.