tableview单元格样式的问题 - UITableViewCellStyleValue1

时间:2009-12-06 15:08:11

标签: iphone tableview

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

    // Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
  if(indexPath.row == 0)
  {
   cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
   cell.textLabel.textColor = [UIColor whiteColor];
   cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
   cell.detailTextLabel.textColor = [UIColor yellowColor];
   cell.detailTextLabel.text = @"Description";
  }
  else
  {
   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;
}

有人可以帮助我吗?

1 个答案:

答案 0 :(得分: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;
}