2012-12-12 46 views
1

我在我加載的細胞從2個不同的自定義classes.and我的代碼看起來像這樣我的單元格在表格視圖中重複?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        static NSString *CellIdentifier1 = @"CellIdentifier"; 
        static NSString *CellIdentifier2 = @"Cell"; 
             
        if(messagesarray==nil||[messagesarray count]==0) 
        { 
             
        } 
       else 
        { 
           NSMutableDictionary *dicttable=[messagesarray objectAtIndex:indexPath.row]; 
            NSString *head=[dicttable objectForKey:@"gfgfg"]; 
            NSString *head1=[dicttable objectForKey:@"gfgfgf"]; 
           if([type isEqualToString:@"m"])     
            { 
            if([head isEqualToString:@"NA"]) 
              { 
                  
                  CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1]; 
                 if (cell == nil) 
                 { 
                  cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier1] autorelease]; 
                  cell.backgroundView = [ [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"white_top_portion.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ]autorelease]; 
                 } 
              cell.selectionStyle = UITableViewCellSelectionStyleNone; 
              cell.nameLabel.text=head; 
              cell.msg.text=head1; 
              [cell.button addTarget:self action:@selector(callAction:) forControlEvents:UIControlEventTouchUpInside];      
                   
                  if(icon!=nil) 
                  { 
                      if(![[ImageCache sharedImageCache] hasImageWithKey:icon]) 
                        { 
            cell.myImageView.image = [UIImage imageNamed:@"fggtgf.png"]; 
                          NSArray *myArray = [NSArray arrayWithObjects:cell.myImageView,icon,@"fgfgfg.png",[NSNumber numberWithBool:NO],nil]; 
                          AppDelegate *appDelegate = (AppDelegate  *)[[UIApplication sharedApplication] delegate]; 
                          [appDelegate performSelectorInBackground:@selector(updateImageViewInBackground:) withObject:myArray];    
                        } 
                      else  
                      { 
                          cell.myImageView.image = [[ImageCache sharedImageCache] getImagefromCacheOrUrl:icon]; 
                        } 
                  } 
                  else 
                  { 
                      cell.myImageView.image = [UIImage imageNamed:@"fgfgfg.png"];   
                       
                  }  
              
              cell.label.text=sub;    
              return cell; 
              } 
             else 
             { 
                 Customcellwithimage *cell = (Customcellwithimage *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2]; 
                  
                 if (cell == nil) 
                 { 
                     cell = [[[Customcellwithimage alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier2] autorelease]; 
                     cell.backgroundView = [ [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"white_deal_bg.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ]autorelease]; 
                 } 
                  
                 cell.selectionStyle = UITableViewCellSelectionStyleNone; 
                  cell.datelabel1.text=subtitle; 
                  cell.nameLabel1.text=head; 
                 cell.msg1.text=head1; 
                 if(icon!=nil) 
                 { 
                     if(![[ImageCache sharedImageCache] hasImageWithKey:icon]) 
                      { 
          cell.myImageView1.image = [UIImage imageNamed:@"fgfgfgf.png"]; 
                         NSArray *myArray = [NSArray arrayWithObjects:cell.myImageView1,icon,@"fgfgfgf.png",[NSNumber numberWithBool:NO],nil]; 
                         MFAppDelegate *appDelegate = (MFAppDelegate  *)[[UIApplication sharedApplication] delegate]; 
                         [appDelegate performSelectorInBackground:@selector(updateImageViewInBackground:) withObject:myArray];    
                          
                     } 
                     else  
                     { 
                         cell.myImageView1.image = [[ImageCache sharedImageCache] getImagefromCacheOrUrl:icon]; 
                      } 
                 } 
                 else 
                 { 
                     cell.myImageView1.image = [UIImage imageNamed:@"fgfgfgf.png"];   
                 }  
                   
                 cell.cellview1.image=[UIImage imageNamed:@"vf.png"]; 
        cell.label1.text=sub; 
        [cell.button1 addTarget:self action:@selector(callAction:) forControlEvents:UIControlEventTouchUpInside];  
                   cell.bannerview1.image=[UIImage imageNamed:@"vfgf.png"]; 
                   return cell; 
       } 
            }               
        }   
    } 

我的問題是隻有數組中的第一個元素是多次在細胞priting(細胞的tableview重複),任何人都可以幫助我知道爲什麼會發生這種情況。我有數組數量的部分,每個部分只有單行。

回答

2

如果每個部分只有一行,那麼indexPath.row在每次調用此方法時都將爲0。由於該行是用來選擇數組元素的,因此它總是相同的。

如果要返回[messagesarray count]表示段數和1表示行數,則需要使用indexPath.section

+0

很棒...........哦(我多麼忘記它)..對我來說任何方式都是很好的教訓..非常感謝你。 – hacker

相關問題