2013-03-01 82 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

相關問題