2009-05-09 14 views
12

UITableView è una classe molto potente che alimenta molte viste di navigazione e preferenze su iPhone. Molte persone hanno escogitato suggerimenti utili UITableView, trucchi e campioni:Quali sono i tuoi trucchi UITableView/UITableViewCell preferiti?

  • vari modi di usare Interface Builder per le celle della tabella
  • come creare cellule preferenza in stile
  • garantire una buona velocità di scorrimento
  • ecc

Invia i tuoi suggerimenti preferiti sull'utilizzo di UITableView, un suggerimento per domanda. Inizierò pubblicando quelli che ho trovato su Stack Overflow e quelli dei miei preferiti.

risposta

0

Tabelle raggruppate in stile preferenze di implementazione: la libreria Three20 (estratta dall'app per iPhone di Facebook) ha un gruppo di celle già pronte che contengono vari controlli.

(Non sono sicuro che tu voglia usarli, comunque. Tre20 soffre di "non-inventato-qui" un po 'e prova a sottoclasse ed estende tutto, quindi aggiungerlo aggiunge un bel po' di confusione al tuo progetto. Ma almeno puoi usarlo come esempio.)

+2

Mi sento anche allo stesso modo su Three20. Non sono davvero disposto ad integrarlo direttamente nei miei progetti mentre cercano di reinventare la ruota ogni volta che qualcosa non funziona come vogliono. Anche se, devo ammettere che il tizio dietro di esso ha dei seri mojo Cocoa e puoi sicuramente prendere spunto da alcuni dei suoi trucchi. –

+0

Sì, l'ho usato per le visualizzazioni del pollice, ma l'ho appena ri-implementato dopo un po '. Per molti problemi per un uso così semplice. È piuttosto una biblioteca però. –

9

Ti sei mai chiesto cosa fa realmente UITableViewController?

  • In viewWillAppear, si deseleziona eventuali righe selezionate, con animated:YES.

    Questo è il motivo per cui quando si naviga indietro in UINavigationController, la riga che si è toccata in precedenza è ben deselezionata con l'animazione. Quando hai spinto un nuovo controller di visualizzazione su UINavigationController, hai lasciato la riga selezionata. Quando lo si apre e si torna alla visualizzazione tabella, viewWillAppear si attiva e deseleziona la riga. UINavigationController non sa nemmeno cosa sta succedendo.

  • In viewWillAppear, chiama reloadData se la vista tabella non contiene righe.

  • In viewDidAppear, chiama flashScrollIndicators.

  • Controlla la tastiera che appare e scompare e ridimensiona la visualizzazione della tabella in modo appropriato in modo che quando si tocca un campo di testo in una vista tabella, rimane visibile dopo la tastiera appare.

Se non è necessario il comportamento di monitoraggio della tastiera, è abbastanza facile fare tutto da soli se è necessario.

+0

Non ho mai visto il tavolo muoversi fuori dalla tastiera gratuitamente, ho dovuto implementarlo da solo. Qualche trucco per farlo fare questo? –

+0

@Corey Hm. UITableViewController contiene il codice che fa questo, ho pensato che funzioni appena fuori dalla scatola. Controllerà come farlo accadere, grazie. –

+2

Il trucco è chiamare super quando si ignorano questi metodi. –

2

Per garantire una buona prestazione di scorrimento, è importante evitare la trasparenza di qualsiasi elemento, se possibile, quindi se si creano celle personalizzate si rendono opachi e si impostano correttamente gli sfondi.

È possibile utilizzare lo strumento di animazione Core Animation per visualizzare visivamente la quantità di trasparenza che si sta verificando in una cella: è necessario essere in esecuzione sul dispositivo per utilizzare questo strumento.

3

Se si desidera rimuovere le linee di separazione, utilizzare questo:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
Problemi correlati