2013-03-01 83 views
0

当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

取悦我FRND把你CellforRowAtIndex – 2013-03-01 05:33:19

+0

@Nitin Gohel的一些代码,请检查代码。 – 2013-03-01 05:39:07

回答

3

设置reuseIdentifier作为零。

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

但尝试避免这种解决方案,因为它是昂贵的! – rptwsthi 2013-03-01 05:58:45

相关问题