Установить высоту программно для одного UITableViewCell? - PullRequest
11 голосов
/ 22 марта 2012

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

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

Спасибо.

Ответы [ 4 ]

47 голосов
/ 22 марта 2012

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

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

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if(indexPath.section == yourSection && indexPath.row == yourRow) {
        return 150.0;
    }
    // "Else"
    return someDefaultHeight;
}
7 голосов
/ 22 марта 2012

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

-(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;
    }   
}
5 голосов
/ 11 сентября 2016

SWIFT ОТВЕТ

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

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat{
    if indexPath.section == 0 && indexPath.row == 0{
        return 150
    }
    return 44.0
}
2 голосов
/ 22 марта 2012
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

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

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