1

我正在使用表格视图来显示列表。只有一个单元格会有UITableViewCellStyleValue1. 问题是向上/向下滚动时,详细的文本显示不好。这是代码。

    // 自定义表格视图单元格的外观。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    静态 NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    如果(细胞 == 零){
  如果(indexPath.row == 0)
  {
   cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 重用Identifier:CellIdentifier] autorelease];
   cell.textLabel.textColor = [UIColor whiteColor];
   cell.accessoryType = UITableViewCellAccessoryDe​​tailDisclosureButton;
   cell.detailTextLabel.textColor = [UIColor yellowColor];
   cell.detailTextLabel.text = @"描述";
  }
  别的
  {
   cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
   cell.textLabel.textColor = [UIColor whiteColor];
   cell.accessoryType = UITableViewCellAccessoryNone;
  }
    }

 // 配置单元格。
 cell.textLabel.text = [radioList objectAtIndex:indexPath.row];
    返回单元格;
}

有人能帮我吗?

4

1 回答 1

3

您没有正确处理单元重用。尝试这样做,我认为您应该能够看到我在做什么不同。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
  UITableViewCell *cell = nil;
  if(indexPath.row == 0)
  {
   cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
   if (cell == nil)
   {
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier2] autorelease];
   }
   cell.textLabel.textColor = [UIColor whiteColor];
   cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
   cell.detailTextLabel.textColor = [UIColor yellowColor];
   cell.detailTextLabel.text = @"Description";
  }
  else
  {
    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.textLabel.textColor = [UIColor whiteColor];
    cell.accessoryType = UITableViewCellAccessoryNone;
  }
 }

 // Configure the cell.
 cell.textLabel.text = [radioList objectAtIndex:indexPath.row];
 return cell;
}
于 2009-12-06T15:20:20.020 回答