我正在使用UITableView为iPad应用程序创建一个Grid(电子表格)布局。我得到网格部分工作,但由于我动态地将UILabel添加到单元格,可重用部分不能正常工作。这是代码:
- (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;
}
结果:
答案 0 :(得分:1)
您在每次重复使用时都会添加新标签。您应该只添加一次标签,存储对它们的引用(通常作为自定义单元子类的属性),然后只设置文本值。
您可能会发现在xib中定义自定义单元格并在其中放置标签更容易,从而创建出口。您可以将其注册以便重复使用该表,它将根据需要创建或出列单元格。