J'ai découvert que la première fois qu'un UITableView se charge, il ne répond pas aux touches de défilement - s'il ne contient pas plus de lignes que l'écran ne le permet. Si je ferme la vue, puis rouvrir le même objet - il va maintenant répondre aux touches - même s'il contient le même nombre de lignes.UITableView ne répond pas au défilement la première fois qu'il est chargé
Je ne fais rien d'autre que de répondre aux méthodes UITableViewDataSource pour le nombre de lignes et de générer les lignes elles-mêmes. Je recharge la table chaque fois que la vue apparaît.
Quelqu'un peut-il expliquer un tel comportement?
Je crée les cellules comme ceci:
- (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;
}
Comment créent-vous les cellules? – pgb
En supposant que vous ayez un fichier Interface Builder ('xib') qui contient votre' UITableView', quels paramètres avez-vous activés dans Interface Builder pour cette vue? –
Seuls les paramètres par défaut avec le délégué et les sources de données liées au propriétaire du fichier. – Alex