Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITableView does not respond to scrolling the first time it's loaded

I have found that the first time a UITableView loads, it does not respond to scrolling touches -- if it does not have more rows than fit on the screen. If I close the view, then reopen the same object -- it will now respond to touches -- even though it contains the same number of rows.

I am not doing anything more than responding to the UITableViewDataSource methods for the number of rows, and generating the rows themselves. I am reloading the table every time the view appears.

Can anyone explain such behavior?


I am creating the cells like so:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  static NSString *tableId = @"NewIndexTableId";
  Note *note = [notes objectAtIndex:[indexPath row]];

  UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:tableId];

  if (cell == nil)
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:tableId] autorelease];

  cell.textLabel.text = note.text;
  cell.detailTextLabel.text = [note changedDelta]; 
  cell.accessoryView = multipleAccounts ? [note.account imageView] : nil;

  return cell;  
}
like image 833
Alex Avatar asked Dec 03 '22 07:12

Alex


1 Answers

I had same problem. Bounce Scroll was enabled in IB, but still no love. I had to set it in the code ( in viewDidLoad ) like so...

self.myTableView.bounces = YES;

Hope this helps ;-)

like image 199
Mike Avatar answered Dec 24 '22 18:12

Mike