0

我正在使用 UITableView 为 iPad 应用程序创建类似布局的网格(电子表格)。我得到了网格部分的工作,但由于我动态地将 UILabels 添加到单元格中,可重用部分不能正常工作。这是代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FundCell"];

    Fund *fund = [funds objectAtIndex:[indexPath row]];

    float labelWidth = 1024 / ([columnNames count] -1 );

    for(NSString *columnName in columnNames)
    {
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x, 0, labelWidth, 44)];

        label.backgroundColor = [UIColor clearColor];

        label.text = [fund valueForKey:columnName];

        x += label.bounds.size.width;

        [cell addSubview:label];
    }

    x = 0;

    return cell;
}

结果:

在此处输入图像描述

4

1 回答 1

1

您在每次重用中添加新标签。您应该只添加一次标签,存储对它们的引用(通常作为自定义单元子类的属性),然后只设置文本值。

您可能会发现在 xib 中定义自定义单元格并将标签放置在那里更容易,从而创建出口。您可以将其注册以在表中重复使用,它将根据需要创建或出列单元格。

于 2013-02-13T21:24:16.633 回答