2010-05-26 17 views
5

Sto cercando di passare la mia Tableview al 2 ° cellulare:UITableView non scorre nella cella

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

ottengo l'errore:

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

'

mia Tableview ha 30 celle che appaiono senza sezioni.

+0

Mostra il tuo codice per 'numberOfSectionsInTableView:' –

risposta

3

Se non si hanno le sezioni, allora si può provare il costruttore indexPathWithIndex: classe:

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

Quella chiamata è deprecata in 4.0. So che non possiamo discuterne, quindi senza rompere la NDA - come posso specificare una sezione se non ne contengo? –

+0

@Sheehan: Non riesco a vedere l'avviso di ritiro in XCode, nelle intestazioni o nella documentazione. Sei sicuro che la chiamata sia deprecata? –

+1

Scusa se ho sbagliato non è deprecato. Ho ricevuto questo errore: *** Termina l'applicazione a causa dell'eccezione non rilevata 'NSInternalInconsistencyException', motivo: 'Percorso indice non valido da utilizzare con UITableView. I percorsi indice passati alla visualizzazione tabella devono contenere esattamente due indici che specificano la sezione e la riga. Se possibile, utilizzare la categoria su NSIndexPath in UITableView.h. " –

0

vi consiglio di creare una sezione per memorizzare le cellule in questa sezione possono avere alcuna intestazione in modo che non è visivamente distinguibili. e ciò che ti guadagna è la capacità di non dover combattere contro i percorsi API previsti.

2

Come pollyp, sono stato in grado di utilizzare indexPathForRow:inSection:. Lo sto chiamando dal mio viewWillAppear:.

Sembra che il messaggio di errore indichi che non esiste nemmeno una sezione. Stai forse chiamando scrollToRowAtIndexPath:atScrollPosition:animated: prima che i dati della tabella vengano caricati (ad esempio in viewDidLoad)? Prova a chiamarlo più tardi, in viewWillAppear:.

Problemi correlati