Ho appena iniziato a programmare per iPhone e sto creando un'applicazione che si collega a un database e ottiene un set di nomi di riga e li visualizza. Se selezionato, il colore di sfondo delle righe cambia, ovvero puoi effettuare selezioni multiple e saranno tutti colori diversi. Quindi sto recuperando l'XML dal server senza problemi e ho creato un UITableView
per visualizzare le celle. Tuttavia, non ho idea di come aggiungere le celle alla tabella. Ho dato un'occhiata a insertRowsAtIndexPaths
ma non sono sicuro di come usarlo? Come ho capito, insertRowsAtIndexPaths
accetta due parametri:Aggiunta di celle a UITableView
Un NSArray che contiene la riga in cui si suppone che si trovi la cella e in quale sezione. Il problema con questo è che la mia app avrà un numero dinamico di righe. Come farei a creare il NSArray se non so quante righe avrò? Posso usare NSMutableArray?
Il secondo parametro che serve è un'animazione, che è piuttosto semplice.
Un altro problema che sto avendo è dove creo effettivamente le celle? Come passi le celle alla tableview?
Ho provato a leggere la documentazione ma non sembra molto chiaro! Ecco il codice che ho in questo momento all'interno del metodo loadview del controller della vista:
//Before this I get the XML from the server so I am ready to populate
//cells and add them to the table view
NSArray *cells = [NSArray arrayWithObjects:
[NSIndexPath indexPathForRow:0 inSection:0],
[NSIndexPath indexPathForRow:1 inSection:0],
[NSIndexPath indexPathForRow:2 inSection:0],
[NSIndexPath indexPathForRow:3 inSection:0],
[NSIndexPath indexPathForRow:4 inSection:0],
[NSIndexPath indexPathForRow:5 inSection:0],
[NSIndexPath indexPathForRow:6 inSection:0],
[NSIndexPath indexPathForRow:7 inSection:0],
[NSIndexPath indexPathForRow:8 inSection:0],
[NSIndexPath indexPathForRow:9 inSection:0],
[NSIndexPath indexPathForRow:10 inSection:0],
[NSIndexPath indexPathForRow:11 inSection:0],
[NSIndexPath indexPathForRow:12 inSection:0],
nil];
[eventTypesTable beginUpdates];
[eventTypesTable insertRowsAtIndexPaths:cells withRowAnimation:UITableViewRowAnimationNone];
[eventTypesTable endUpdates];
Grazie, vedo ero completamente confuso su come che ha funzionato. Sono riuscito a generare correttamente le celle ora, ma sto riscontrando un problema. Sto recuperando 12 righe dal database, tuttavia, lo schermo si adatta solo a 7. Una volta che lo schermo è pieno e nel simulatore, se provo a scorrere verso il basso, ottengo un errore in 'NSString * sEventType = [[eventTypes valueForKeyPath: @" nome .text "] objectAtIndex: indexPath.row];' all'interno del metodo 'cellForRowAtIndexPath'. C'è qualcosa che mi manca? Come devo aggiungere un controller scroll o qualcosa del genere? Ancora una volta, grazie per la pronta e utile risposta! – KerrM
Il collegamento è interrotto. Questo è il motivo per cui è necessario inserire almeno un codice di esempio anziché fare affidamento su collegamenti esterni. –
collegamento è rotto, ma è possibile trovare il contenuto di questo URL qui: http://web.archive.org/web/20150928131750/http://www.iosdevnotes.com/2011/10/uitableview-tutorial/ – Upsilon42