2010-05-26 5 views
5

Je suis en train de faire défiler mon tableview à la 2ème cellule:UITableView ne défile pas à la cellule

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] 
            atScrollPosition:UITableViewScrollPositionNone 
              animated:NO]; 

Je reçois l'erreur:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (1) beyond bounds (0). 

'

Mon tableview dispose de 30 cellules qui apparaissent sans sections.

+0

Afficher votre code pour 'numberOfSectionsInTableView:' –

Répondre

3

Si vous avez aucune section, vous pouvez essayer le constructeur de la classe indexPathWithIndex::

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1] 
         atScrollPosition:UITableViewScrollPositionNone 
           animated:NO]; 
+0

Cet appel est déconseillé dans la version 4.0. Je sais que nous ne pouvons pas en discuter, donc sans briser NDA - comment puis-je spécifier une section si je n'en ai pas? –

+0

@Sheehan: Je ne peux pas voir l'avertissement de dépréciation dans XCode, dans les en-têtes ou dans la documentation. Êtes-vous sûr que l'appel est obsolète? –

+1

Désolé je me trompe n'est pas obsolète. J'ai reçu cette erreur: *** Terminaison de l'application en raison d'une exception non interceptée 'NSInternalInconsistencyException', raison: 'Chemin d'index invalide à utiliser avec UITableView. Les chemins d'index transmis à la vue table doivent contenir exactement deux index spécifiant la section et la ligne. Veuillez utiliser la catégorie sur NSIndexPath dans UITableView.h si possible. ' –

0

Je vous recommande de créer une section pour stocker vos cellules dans cette section ne peut pas avoir la tête de sorte que ce n'est pas distinguer visuellement. , et ce que cela vous gagne est la capacité de ne pas avoir à se battre contre les voies API prévues.

2

Comme pollyp, j'ai pu utiliser indexPathForRow:inSection:. Je l'appelle de mon viewWillAppear:.

Il semble que votre message d'erreur indique qu'il n'y a même pas une section. Appelez-vous scrollToRowAtIndexPath:atScrollPosition:animated: avant le chargement des données de la table (par exemple, viewDidLoad)? Essayez de l'appeler plus tard, au viewWillAppear:.

Questions connexes