title: iOS 7 UITableView selects previous IndexPath after scrolling
body: <p>Ok, so I have this puzzling bug in my app.
  I created a TableView dynamically and filled it with some data (the data is not the issue here, empty cells behaves the same). The <code>UITableView</code> displays fine and the data is loaded ok. When i tap the rows in the cell everything is FINE, it selects normally and deselects normally! No worries at all.</p>
  
  <p><strong>Problem:</strong>
  When I scroll the <code>UITableView</code> it's scrolling normally BUT whenever i try to select a row after scrolling it, the wrong row is selected. The row selected is the one that was pointed at when starting to scroll. It's like the row is getting selected upon touch when you start to scroll and then fires <code>didSelectRowAtIndexPath:</code> when you try to tap on another row in the table. Once the wrong row is selected you can again select the rows you want, until you scroll again!</p>
  
  <p><strong>What could be causing this?</strong></p>
  
  <p>Here's my code for the table view!</p>
  
  <pre><code>//Function to display a summary view after answering all the questions
  -(IBAction)displaySummaryView {
      viewSummary = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-60)];
      [viewSummary setAlpha:0.0f];
      [viewSummary setHidden:YES];
      UITableView *tableView = [[UITableView alloc] init];
      [tableView setBackgroundColor:[UIColor clearColor]];
      [tableView setSeparatorColor:[UIColor colorWithWhite:0.0f alpha:0.25f]];
      [tableView setDataSource:self];
      [tableView setDelegate:self];
      [tableView setTranslatesAutoresizingMaskIntoConstraints:NO]; //Taken care of elsewhere
      [viewSummary addSubview:tableView];
  
      //Get all the answers and sort them right!
      NSMutableString *predicate = [[NSMutableString alloc] initWithString:@"((SELF.id == '-1')"]; //Init with dummy
      for(Answer *ans in activeSession.answers) {
          [predicate appendFormat:@" OR (SELF.id == %@)", ans.question_id];
      }
      [predicate appendFormat:@")"];
      summaryQuestionsAndAnswers = nil;
      summaryQuestionsAndAnswers = [currentQuestions filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:predicate]];
      predicate = nil;
  }
  
  -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
      return [summaryQuestionsAndAnswers count];
  }
  
  -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
      return 1;
  }
  
  -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
      return 120.0f;
  }
  
  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      NSString *cellIdentifier = [NSString stringWithFormat:@"formCell%d",indexPath.row];
      UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
      if (cell == nil) {
          //Cell creation here
      }
      return cell;
  }
  
  -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
      [tableView deselectRowAtIndexPath:indexPath animated:YES];
      NSLog(@"Indexpath section %d row %d", indexPath.section, indexPath.row);
  }
  
  -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
      [cell setBackgroundColor:[UIColor clearColor]];
  }
  </code></pre>