数据在tableview单元格中重叠

时间:2012-02-09 07:32:50

标签: objective-c xcode

我正在解析json数据并将其分配到我的表视图cell.where在tableview单元格的第一行.im分配静态数据(绿色文本)。如果我滚动我的tableview,在第一个表视图单元格中分配的数据是在我的第6和第7个tableview单元格中重叠。下面是屏幕截图和代码。你们可以帮助我了吗

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *CellIdentifier = @"Cell";
   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];

}
if(indexPath.row == 0)
{

   cell.textLabel.text=@"Pollenprognosen";
    cell.textLabel.textColor=[UIColor greenColor];
    cell.detailTextLabel.text=@"se dagens pollenprognos";
    cell.detailTextLabel.font=[UIFont systemFontOfSize:([UIFont systemFontSize]-2)];

    return cell;
}
else
{
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text=[story objectAtIndex:indexPath.row];
    return cell;
}
}

enter image description here

2 个答案:

答案 0 :(得分:3)

我认为这是因为细胞被重复使用。请尝试使用此代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {

    static NSString *CellIdentifier = @"Cell";
       UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];

    }
    if(indexPath.row == 0)
    {

       cell.textLabel.text=@"Pollenprognosen";
        cell.textLabel.textColor=[UIColor greenColor];
        cell.detailTextLabel.text=@"se dagens pollenprognos";
        cell.detailTextLabel.font=[UIFont systemFontOfSize:([UIFont systemFontSize]-2)];
cell.accessoryType=UITableViewCellAccessoryNone;
        return cell;
    }
    else
    {

    cell.textLabel.text=[story objectAtIndex:indexPath.row];
cell.textLabel.textColor=[UIColor blackColor];
cell.detailTextLabel.text=nil;
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
        return cell;

    }
    }

答案 1 :(得分:2)

按照以下方式制作else部分。

else
{
    cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
    cell.textLabel.text=[NSString stringWithFormat:@"Cell %d",indexPath.row];

    cell.textLabel.textColor=[UIColor blackColor];
    cell.detailTextLabel.text=@"";

    return cell;
}