0

我有一个 UITableView 控制器、UITableView xib 和两个带有 xib 的 UITableViewCell 子类。我为每个 xib 拖出了一个单独的单元格。我的第一个单元格的高度是 115,而我的另一个单元格具有默认高度。当在我的控制器中调用 cellForRowAtIndexPath 时,我有一个条件语句,将第一行设置为我更大的单元格。之后的每一行都设置为我的另一个单元格。即使正在渲染较大的单元格,默认单元格也不会识别第一个单元格大于默认单元格的事实,因此默认单元格与较大的单元格重叠。我在较大单元格的底部设置了一个 distanceLabel 插座,以向您展示我的意思:

在此处输入图像描述

注意: 2.3 英里是第一个单元格的一部分。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // load the cell nib
    UINib *nib = [UINib nibWithNibName:@"CustomViewCell" bundle:nil];
    UINib *bigNib = [UINib nibWithNibName:@"BigCell" bundle:nil];

    //Register the nib
    [[self tableView] registerNib:nib forCellReuseIdentifier:@"CustomViewCell"];
    [[self tableView] registerNib:bigNib forCellReuseIdentifier:@"BigCell"];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
        if (indexPath.row == 0) {
        BigCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BigCell"];
        NSString *title = [self.frontList objectAtIndex:indexPath.row];
        [[cell nameLabel] setText:title];
        [[cell distanceLabel] setText:@"2.3 miles"];
        return cell;
    } else {

        CustomFrontCell *cell  = [tableView dequeueReusableCellWithIdentifier:@"CustomViewCell"];
        NSString *titles = [self.frontList objectAtIndex:indexPath.row];
        [[cell nameLabel] setText:titles];
        return cell;
    }
}

如何使这些单元格以正确的间距和高度呈现?

4

1 回答 1

2

您可以使用 UITableViewDelegate 方法tableView:(UITableView *)tableView heightForRowAtIndexPath:来控制高度。

于 2012-05-14T22:40:06.683 回答