2014-04-15 12 views
71

Ho trovato che UICollectionView è come una versione aggiornata di UITableView introdotta in iOS6, ma quando dovrei scegliere UICollectionView anziché UITableView?Quando utilizzare UICollectionView anziché UITableView?

Ci sono ancora le app che usano UITableView, se UICollectionView può fare qualsiasi cosa che lo UITableView può fare, perché le persone usano ancora UITableView? C'è una differenza per quanto riguarda le prestazioni?

Grazie!

risposta

56

Questo dipende dai requisiti. In che modo il flusso dell'applicazione determina quale tipo di interfaccia utente integrare nell'applicazione.

Le persone utilizzano principalmente lo UICollectionview per creare tipi di interfacce utente con più immagini visualizzate in una griglia. Questo avrebbe una logica complessa usando UITableView, ma con UICollectionview, sarebbe facile.

Quando si utilizza UICollectionview, non è necessario impostare pulsanti con tag o altre cose ottenendo valori di elementi selezionati. Si può ottenere semplicemente -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath in UITableViewDelegate:

`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath` 

si ottiene la riga selezionata anziché l'elemento, quindi per la creazione di griglia o elementi modificati, utilizzando UICollectionview è migliore.

Per i dettagli di ciascun articolo, le persone utilizzano UITableView perché mostra più informazioni su ciascun articolo.

di Apple Documenti:

UICollectionView Class Reference

La classe UICollectionView gestisce una collezione ordinata di elementi di dati e li presenta con layout personalizzabili. Le viste di raccolta forniscono la stessa funzione generale delle viste di tabella, tranne per il fatto che una vista di raccolta è in grado di supportare più di semplici layout a colonna singola. Le viste di raccolta supportano i layout personalizzabili che possono essere utilizzati per implementare griglie a più colonne, layout affiancati, layout circolari e molto altro. Puoi anche modificare il layout di una vista di raccolta in modo dinamico se lo desideri.

UITableView Class Reference

Una vista tabella visualizza un elenco di elementi in una singola colonna. UITableView è una sottoclasse di UIScrollView, che consente agli utenti di scorrere la tabella, sebbene UITableView consenta solo lo scorrimento verticale. Le celle che comprendono i singoli elementi della tabella sono oggetti UITableViewCell; UITableView utilizza questi oggetti per disegnare le righe visibili della tabella. Le celle hanno titoli di contenuto e immagini e possono avere, vicino al bordo destro, viste accessorie. Le viste accessorie standard sono indicatori di divulgazione o pulsanti di descrizione dettagliata; il primo porta al livello successivo in una gerarchia di dati e quest'ultimo porta a una vista dettagliata di un elemento selezionato. Le viste accessorie possono anche essere controlli del framework, come interruttori e cursori, oppure possono essere viste personalizzate. Le visualizzazioni delle tabelle possono entrare in una modalità di modifica in cui gli utenti possono inserire, eliminare e riordinare le righe della tabella.

+3

Penso in termini di estensibilità - Raccolta vista punteggi più !! – thatzprem

+0

Mi chiedo perché sia ​​mai necessario utilizzare tableview quando collectionview può soddisfare tutte le esigenze senza ulteriore complessità ma offre flessibilità (se un cliente ha mai bisogno di estendere il layout a più di una colonna, sarebbe abbastanza semplice farlo con CollectionView). Usavo sempre le visualizzazioni di tabelle per impostazione predefinita, ma ora dubito che abbia senso passare a raccolte di immagini. Mi sto perdendo qualcosa? –

+0

tutto basato sul requisito principale. La vista raccolta viene introdotta in ritardo e fino a quel momento tutti gli sviluppatori utilizzano la tabella per creare una griglia e quel tipo di elementi. ma ora una raccolta di giorni è il più populor da usare per creare layout come tableview. così pure non penso che sia una cattiva idea usare le viste di raccolta –

24

Per elenchi semplici e avanti/indietro, utilizzare UITableView.

Se è necessario un livello elevato di personalizzazione, utilizzare UICollectionView.

In generale, nello sviluppo del software, è meglio scegliere l'approccio che rappresenta "La cosa più semplice possibile".

0

In base al nostro bisogno, stiamo scegliendo TableView o CollectionView.

Esempio:

Per contatti telefonici tableView è migliore opzione.

Per la galleria fotografica, la vista raccolta è l'opzione migliore.

+5

Mentre sono d'accordo il modo in cui questo è stato messo sembra più come un'opinione e penso che dovrebbe essere solo un commento non una risposta. – Popeye

0

Ho riscontrato questo problema nel mio progetto corrente. Quale usare. Nel mio caso è stato davvero semplice. Avevo bisogno di entrambi. Avevo bisogno della mia vista per assomigliare a UITableView e anche per cambiare la sua modifica/layout. Quindi, UICollectionView è stato utilizzato. Uso anche UITableView ovunque non ho bisogno di personalizzazioni extra. Poiché UiTableView ha un layout predefinito che include immagini e testo, lo uso per semplicità.

9

Secondo il mio punto di vista principale differenza tra CollectionView e tableView è che

tableView -> Visualizza elenco di voci in una sola colonna.

COLLEZIONE-VISUALIZZA -> mostra l'elenco di elementi in più colonne.

Spero che ti possa aiutare.

2

Entrambi dipendono dai requisiti. Le viste tabella supportano anche una varietà di scenari di modifica. Questo supporto non è stato implementato nelle classi View Collection. Se si sta convertendo da una vista tabella che si basa su questi metodi, ci si aspetta di fare un po 'più di sollevamento nella vista raccolta. Le intestazioni della sezione Raccolta vista possono essere posizionate ovunque all'interno della vista. e UITableView non hanno bisogno di impostare pulsanti con tag o altre cose ottenendo valori di elementi selezionati.

8

Se scegli UITableView per iPhone, assicurati di aver considerato prima la strategia iPad. Se si desidera un layout specifico per iPad, è possibile che il layout a colonna singola diventi una griglia.

16

Ecco i miei criteri:

  • Se un UITableView può farlo, usano

  • Se un UITableView ha bisogno di un sacco di codice per farlo o non può farlo a tutti, utilizzare UICollectionView .

È necessario considerare le restrizioni su UITableView prima di prendere una decisione: si tratta di una singola colonna. E puoi solo personalizzare le celle, ma non gli sfondi delle sezioni e così via. Quindi, se hai una lista di cose dritta senza fronzoli extra - che assomiglia ad una vista iOS standard della palude, in pratica - usa UITableview. Se hai inserti personalizzati o un bordo attorno a ciascuna sezione, usa UICollectionView.

In realtà considero UICollectionView per tutte le cose, semplicemente perché è molto costoso quando si inizia a sviluppare la vista come una vista tabella, quindi in seguito si scopre che non può fare quella cosa che è necessario fare. Esperienza di prima mano;)

Modifica dopo un'esperienza ancora maggiore con i due: Ignorare l'ultimo paragrafo. UICollectionView richiede molto codice boilerplate per farlo funzionare come un UITableView. Usa UICollectionView solo quando è veramente necessario. ;)

+1

Risposta perfetta che stavo cercando! Questo dovrebbe essere votato di più! –

+1

Rivelare la tua esperienza personale e le raccomandazioni è molto utile! – aero

0

In base al nostro requisito, scegliamo la vista UITableView o UICollection.

Se vogliamo visualizzare immagini o elementi nel tipo di griglia o se abbiamo bisogno di maggiore personalizzazione usiamo UICollectionview.

Per l'elenco di ogni elemento con dettagli e sottodettagli utilizziamo UITableView.

UICollectionView: La classe UICollectionView gestisce una collezione ordinata di elementi di dati e li presenta con layout personalizzabili. Le viste di raccolta forniscono la stessa funzione generale delle viste di tabella, tranne per il fatto che una vista di raccolta è in grado di supportare più di semplici layout a colonna singola.

UITableView: Una vista tabella visualizza un elenco di elementi in una singola colonna. UITableView è una sottoclasse di UIScrollView, che consente agli utenti di scorrere la tabella, sebbene UITableView consenta solo lo scorrimento verticale.

2

Anche se non è necessario, utilizzo sempre una collectionview. In questo modo posso facilmente adattare il modo in cui le mie collezioni sono presentate per risoluzioni diverse. Un vantaggio è che è pronto per aggiungere rapidamente nuovi tipi di celle durante il refactoring in futuro.

Non vedo alcun punto di vista del tavolo. È molto semplice utilizzare una vista insieme per rappresentare un tavolo. IMO.

1

Dipende totalmente dalla modalità di visualizzazione dei dati. Come già detto in precedenza, se si richiede solo un singolo set di dati e anche questo non è complesso, andare a altrimenti utilizzare UICollectionView.

UICollectionView è personalizzabile.

Se si ha a che fare con altezze di celle multiple o così, quindi andare per UICollectionView.

0

Dalla mia esperienza personale i due elementi dovrebbero essere solo paragonati.

TableView

Un TableView è un elemento di interfaccia utente progettata per mostrare i dati in un formato elenco. C'è alcune funzionalità che viene fornito di serie con un UITableView, come ad esempio:

  • accessori Visualizza
  • Stile cellulare Selezione
  • Editting stile (Delete e modificare i pulsanti).

Gli elementi di cui sopra migliorano l'usabilità dei dati durante la visualizzazione e l'interazione in un formato elenco. Come ad esempio la visualizzazione di e-mail.

CollectionView

Un CollectionView è un elemento dell'interfaccia utente progettato per la visualizzazione di contenuto tramite un layout personalizzato (in genere tutto ciò che non è una lista). CollectionView migliora la funzionalità di visualizzazione dei dati in stili di layout completamente personalizzati e modifica dinamica dei layout al volo. Alcuni esempi sono:

  • liste Horizonal
  • Gallerie Fotografiche
  • vista Miniatura
  • Caroselli
  • Dials
  • layout di elementi su una mappa
  • ecc

CollectionViews al quindi consenti selezioni multiple.

Conclusione

Come si può vedere da quanto sopra, entrambi hanno completamente diversi casi di utilizzo e sono progettati per migliorare lo sviluppo e la fruibilità dei propri specifici insiemi di dati.

Se siete alla ricerca presso la visualizzazione di qualsiasi cosa in uno stile di elenco con le interazioni followin: - Aggiunta - Eliminazione - Ri-ordinare Poi un UITableView semplificherà questo processo fornendo il supporto direttamente fuori dalla scatola.

Qualsiasi altra cosa, dovresti sfruttare i vantaggi di CollectionView poiché hai più flessibilità.

Problemi correlati