title: UITableViewCell Reuse and Images Re-render
body: <p>I have an UITableView and it has 18 sections, in each section there is 1 title header and 1 cell. In each cell, there will be a horizontal UIScrollView with more than a few images. </p>
  
  <p>Problem is... I can load the images and the cells correctly, but when the image quantity increases and when the cell get scrolled to top, there are images from different cell popping up in other cells... and all the render and images are all wrong... images supposed to be in section 3 or 4 appears in section 1....etc.</p>
  
  <p>The datasource is loaded from JSON, and the JSON is right. Everything works perfectly when images is not much and with only 5-8 sections. So, it leads me to believe it's the reuse of the UITableViewCell which generates this problem.</p>
  
  <p>Can somebody give me a hand on this... thanks.. below is the code of the UITableViewCell</p>
  
  <pre><code>// Customize the appearance of table view cells.
  
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  
  UITableViewCell *cell = nil;
  
  // add a placeholder cell while waiting on table data
  if ([self.datasource count] == 0 &amp;&amp; indexPath.section == 0 &amp;&amp; indexPath.row == 0)
  {   
      UILabel *Fetch;
      static NSString *infoCell = @"infoCell";
      cell = [tableView dequeueReusableCellWithIdentifier:infoCell];
      if (cell == nil)
      {
          cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                         reuseIdentifier:infoCell] autorelease];   
          cell.selectionStyle = UITableViewCellSelectionStyleNone;
  
          CellFetch = [[[UILabel alloc] initWithFrame:CGRectMake(15.0, 120.0, 280.0, 80.0)] autorelease];
          CellFetch.tag = FETCH_TAG;
          CellFetch.font = [UIFont boldSystemFontOfSize:16.0];
          CellFetch.textColor = [UIColor grayColor];
          CellFetch.shadowColor = [UIColor whiteColor];
          CellFetch.shadowOffset = CGSizeMake(0, -0.5);
          CellFetch.textAlignment = UITextAlignmentCenter;
          [cell.contentView addSubview:CellFetch];
      } else {
          CellFetch = (UILabel *)[cell.contentView viewWithTag:FETCH_TAG];
      }
      Fetch.text = fetchStatus;
      return cell;
  } else {
  UIScrollView *imgScroll;
  static NSString *imgCell = @"imgCell";
  cell = [tableView dequeueReusableCellWithIdentifier:imgCell];
  if (cell == nil) {
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:imgCell] autorelease];
      cell.selectionStyle = UITableViewCellSelectionStyleNone;
  
      imgScroll = [[[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 108.0)]autorelease];
      imgScroll.tag = SCROLLVIEW_TAG;
      imgScroll.showsVerticalScrollIndicator = NO;
      imgScroll.showsHorizontalScrollIndicator = NO;
  } else {
      imgScroll = (UIScrollView *)[cell.contentView viewWithTag:SCROLLVIEW_TAG];
  }
      NSArray *sorted = [[self.datasource allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
      //NSArray *allDistrict = [self.datasource allValues];
      NSString *key = [sorted objectAtIndex:indexPath.section];
      NSArray *img = [self.datasource valueForKey:key];
  
      int column = 0;
      int space = 10;
      int width = 80;
      int x = space+5.0;
      for (NSUInteger i=0; i &lt; img.count; i++) {
          UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
          NSDictionary *Info = [img objectAtIndex:i];
          NSString *iconURL = [NSString stringWithFormat:@"%@",[Info objectForKey:@"ImgURL"]];
          button.frame = CGRectMake(x , 4, 80, 80);
          [button setImageWithURL:[NSURL URLWithString:iconURL] placeholderImage:[UIImage imageNamed:@"pholder"]];
          NSString *imgID = [Info objectForKey:@"ImgID"];
          int k = [imgID intValue];
          button.tag = k; 
          [button addTarget:self action:@selector(onButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
          [imgScroll addSubview:button];
  
  
          x+=space+width;
          column++;
      }
  
      [imgScroll setContentSize:CGSizeMake(column*90+10, 108)];
  
      [cell.contentView addSubview:imgScroll];
  }
  // Configure the cell...
  return cell;
  </code></pre>
  
  <p>}</p>