Как изменить высоту сгруппированного tableViewCell? - PullRequest
5 голосов
/ 26 апреля 2011

Я пытаюсь отобразить адрес в том виде, в котором он отображается в приложении «Контакт» на iPhone. так что, кажется, мне нужна клетка с высотой в три раза больше обычной. так как он всегда будет одинаковым, мне просто нужно применить к коду фиксированную высоту. но я не знаю как это сделать. мой текущий код

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSString *address = [NSString stringWithFormat:@"%@\n"@"%@ %@ %@\n"@"%@", dispAddress, dispCity, dispState, dispZip, dispCountry];
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
    }


    // Configure the cell...

        cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.detailTextLabel.numberOfLines = 3; // 0 means no max.
        cell.detailTextLabel.text = address;

    return cell;
}

1 Ответ

4 голосов
/ 26 апреля 2011

Чтобы установить все ячейки на одинаковую фиксированную высоту, в viewDidLoad или в другом подходящем месте, выполните:

self.tableView.rowHeight = 100;

Чтобы установить ячейки на разные высоты в зависимости от пути индекса, используйте метод делегата heightForRowAtIndexPath:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ((indexPath.section == 0) && (indexPath.row == 0))
        return 100;
    else
        return 44;
}
...