Tableview单元格覆盖

时间:2016-10-03 06:33:59

标签: ios xcode tableview

下面是我的代码,当我滚动时,单元格过度写入,当我将内容置于if(cell == nil)时,没有显示任何内容,我不知道如何摆脱它。 当我一次又一次地滚动它只会覆盖。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO];
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView       dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    UILabel *boothtitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 3, self.view.frame.size.width*0.5-3, 25)];
    UILabel *HouseTitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 31, self.view.frame.size.width*0.5-3, 25)];
    UILabel *NameTitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 59, self.view.frame.size.width*0.5-3, 25)];
    UILabel *FHNTitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 87, self.view.frame.size.width*0.5-3, 25)];
    UILabel *EPICTitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 115, self.view.frame.size.width*0.5-3, 25)];

    UILabel *BoothNo=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 3, 200, 25)];
    UILabel *HouseNo=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 31, 200, 25)];
    UILabel *Name=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 59, 200, 25)];
    UILabel *EPIC=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 87, 200, 25)];
    UILabel *Fnaaam=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 115, 200, 25)];

    [cell.contentView addSubview:boothtitle];
    [cell.contentView addSubview:HouseTitle];
    [cell.contentView addSubview:NameTitle];
    [cell.contentView addSubview:FHNTitle];
    [cell.contentView addSubview:EPICTitle];

    [cell.contentView addSubview:BoothNo];
    [cell.contentView addSubview:Name];
    [cell.contentView addSubview:HouseNo];
    [cell.contentView addSubview:EPIC];
    [cell.contentView addSubview:Fnaaam];
    boothtitle.text=@"Booth Number";
    HouseTitle.text=@"House Number";
    NameTitle.text=@"Name";
    FHNTitle.text=@"F/H/M Name";
    EPICTitle.text=@"EPIC";

    BoothNo.text=[BotthID objectAtIndex:indexPath.row];
    Name.text=[nname objectAtIndex:indexPath.row];
    HouseNo.text=[Houseno objectAtIndex:indexPath.row];
    EPIC.text=[EpiC objectAtIndex:indexPath.row];
    Fnaaam.text=[FName objectAtIndex:indexPath.row];

    return cell;

}

1 个答案:

答案 0 :(得分:0)

我解决了,我只是改变了条件。以下是代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:NO];
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView       dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell != nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    UILabel *boothtitle=[[UILabel alloc]initWithFrame:CGRectMake(3, 3, self.view.frame.size.width*0.5-3, 25)];
    UILabel *HouseTitle=[[UILabel alloc]initWithFrame:CGRectMake(3, 31, self.view.frame.size.width*0.5-3, 25)];
    UILabel *NameTitle=[[UILabel alloc]initWithFrame:CGRectMake(3, 59, self.view.frame.size.width*0.5-3, 25)];
    UILabel *FHNTitle=[[UILabel alloc]initWithFrame:CGRectMake(3, 87, self.view.frame.size.width*0.5-3, 25)];
    UILabel *EPICTitle=[[UILabel alloc]initWithFrame:CGRectMake(3, 115, self.view.frame.size.width*0.5-3, 25)];
    UIImageView *icon = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width*0.5+90, 7, 25, 25)];

    icon.image=[UIImage imageNamed:@"edit.png"];

    UILabel *BoothNo=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 3, 200, 25)];
    UILabel *HouseNo=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 31, 200, 25)];
    UILabel *Name=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 59, 200, 25)];
    UILabel *EPIC=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 87, 200, 25)];
    UILabel *Fnaaam=[[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width*0.5+3, 115, 200, 25)];

    [cell.contentView addSubview:boothtitle];
    [cell.contentView addSubview:HouseTitle];
    [cell.contentView addSubview:NameTitle];
    [cell.contentView addSubview:FHNTitle];
    [cell.contentView addSubview:EPICTitle];

    [cell.contentView addSubview:icon];

    [cell.contentView addSubview:BoothNo];
    [cell.contentView addSubview:Name];
    [cell.contentView addSubview:HouseNo];
    [cell.contentView addSubview:EPIC];
    [cell.contentView addSubview:Fnaaam]; 
    boothtitle.text=@"Booth Number";
    HouseTitle.text=@"House Number";
    NameTitle.text=@"Name";
    FHNTitle.text=@"F/H/M Name";
    EPICTitle.text=@"EPIC";

    BoothNo.text=[BotthID objectAtIndex:indexPath.row];
    Name.text=[nname objectAtIndex:indexPath.row];
    HouseNo.text=[Houseno objectAtIndex:indexPath.row];
    EPIC.text=[EpiC objectAtIndex:indexPath.row];
    Fnaaam.text=[FName objectAtIndex:indexPath.row];

    return cell;
}