当UITableView滚动扩展的单元格重叠时

时间:2013-03-01 05:32:13

标签: iphone uitableview

当滚动uitableview时,扩展的单元格被洗牌,整个表格单元格被混洗并重叠。为什么会这样,我怎么设置这个。请指导,先谢谢。

以下是代码:

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell;

if(tableView == self.mTableView)
{
 cell = [self.mTableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
}

if(tableView == self.mMenuTableView)
{
cell = [self.mMenuTableView dequeueReusableCellWithIdentifier:CellIdentifier];

     if (cell == nil)
     {
         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
     }
         if(indexPath.section == 0)
         {

             if(!isShowingList)
             {
                 cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"event_exp.png"]];
             }

             else
             {

                 if(indexPath.row == 0)
                 {
                     cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"event_exp_active.png"]];
                 }

                 if(indexPath.row == 1)
                 {
                 cell.textLabel.text = [self.mArrSubMenuEvent objectAtIndex:0];
                     cell.backgroundColor = [UIColor colorWithRed:56.0/255.0 green:218.0/255.0 blue:250.0/255.0 alpha:1.0];
                 }
                 if(indexPath.row == 2)
                 {
                     cell.textLabel.text = [self.mArrSubMenuEvent objectAtIndex:1];

                 }
                 if(indexPath.row == 3)
                 {
                     cell.textLabel.text = [self.mArrSubMenuEvent objectAtIndex:2];
                }

             }

         }

         if(indexPath.section == 1)
         {

             if(!isOverhead)
             {
                 cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"overhead_exp.png"]];
             }
             else
             {
             if(indexPath.row == 0)
             {

             cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"overhead_exp_active.png"]];

             }

             if(indexPath.row == 1)
             {
                 cell.textLabel.text = @"Friend";
             }

             if(indexPath.row == 2)
             {
                 cell.textLabel.text = @"Public";
             }

             }

         }

         if(indexPath.section == 2)
         {

             NSString *imgName = [self.mArrCellImages objectAtIndex:indexPath.row];
             cell.backgroundView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:imgName]];
         }

     }

cell.selectionStyle = UITableViewCellSelectionStyleNone;

return cell;
}

1 个答案:

答案 0 :(得分:3)

将reuseIdentifier设置为nil。

cell = [self.mTableView dequeueReusableCellWithIdentifier:nil];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    }