Eso depende de los requisitos. La forma en que fluye la aplicación determina qué tipo de interfaz de usuario se integrará en la aplicación.
La gente usa principalmente UICollectionview
para crear tipos de UI con múltiples imágenes mostradas en una cuadrícula. Esto tendría una lógica compleja UITableView
, pero con UICollectionview
eso sería fácil.
Al usarlo UICollectionview
, no es necesario configurar botones con etiquetas u otras cosas obteniendo valores de elementos seleccionados. Simplemente puede obtener -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
y entrar UITableViewDelegate
:
`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`
Obtiene la fila seleccionada en lugar del elemento, por lo que para crear cuadrículas o elementos modificados, usar UICollectionview
es mejor.
Para los detalles de la lista de cada artículo, la gente usa UITableView
porque muestra más información sobre cada artículo.
Documentos de Apple:
Referencia de la clase UICollectionView
La clase UICollectionView administra una colección ordenada de elementos de datos y los presenta mediante diseños personalizables. Las vistas de colección brindan la misma función general que las vistas de tabla, excepto que una vista de colección puede admitir más que solo diseños de una sola columna. Las vistas de colección admiten diseños personalizables que se pueden usar para implementar cuadrículas de varias columnas, diseños en mosaico, diseños circulares y muchos más. Incluso puede cambiar el diseño de una vista de colección de forma dinámica si lo desea.
Referencia de la clase UITableView
Una vista de tabla muestra una lista de elementos en una sola columna. UITableView es una subclase de UIScrollView, que permite a los usuarios desplazarse por la tabla, aunque UITableView solo permite el desplazamiento vertical. Las celdas que comprenden los elementos individuales de la tabla son objetos UITableViewCell; UITableView usa estos objetos para dibujar las filas visibles de la tabla. Las celdas tienen contenido (títulos e imágenes) y pueden tener, cerca del borde derecho, vistas accesorias. Las vistas de accesorios estándar son indicadores de divulgación o botones de divulgación de detalles; el primero conduce al siguiente nivel en una jerarquía de datos y el segundo conduce a una vista detallada de un elemento seleccionado. Las vistas accesorias también pueden ser controles de marco, como interruptores y controles deslizantes, o pueden ser vistas personalizadas. Las vistas de tabla pueden ingresar a un modo de edición donde los usuarios pueden insertar, eliminar y reordenar filas de la tabla.
Aquí está mi criterio:
Si un UITableView puede hacerlo, utilícelo
Si un UITableView necesita mucho código para hacerlo o no puede hacerlo en absoluto, use UICollectionView.
Debe considerar las restricciones en UITableView antes de tomar una decisión: es una sola columna. Y solo puede personalizar las celdas, pero no los fondos de las secciones y demás. Entonces, si tiene una lista directa de cosas sin adornos adicionales, que básicamente parece una vista estándar de iOS pantanosa, use UITableview. Si tiene inserciones personalizadas o un borde alrededor de cada sección, use UICollectionView.
De hecho, estoy considerando UICollectionView para todas las cosas simplemente porque es muy costoso cuando comienza a desarrollar su vista como una vista de tabla, y luego descubre que no puede hacer lo único que necesita que haga. Experiencia de primera mano;)Edite después de tener aún más experiencia con los dos: ignore el último párrafo. UICollectionView requiere una gran cantidad de código repetitivo para que funcione como un UITableView. Utilice UICollectionView solo cuando sea realmente necesario. ;)
fuente
Para listas simples y navegación hacia adelante / hacia atrás, use
UITableView
.Si necesita un alto grado de personalización, utilice
UICollectionView
.En términos generales, en el desarrollo de software, es mejor elegir el enfoque que represente "lo más simple posible".
EDITAR: A partir de iOS 14,
UICollectionView
ahora también puede hacer listas y ahora es el enfoque recomendado. Consulte esta sesión de WWDC20 para obtener más información y detalles de implementación: https://developer.apple.com/videos/play/wwdc2020/10026/fuente
Según mi punto de vista, la principal diferencia entre collectionView y tableView es que
Espero que te ayude.
fuente
Si elige UITableView para iPhone, asegúrese de haber considerado primero su estrategia de iPad. Si desea un diseño específico para iPad, es posible que desee que el diseño de una sola columna se convierta en una cuadrícula.
fuente
Aunque no es obligatorio, siempre uso una vista de colección. De esa manera puedo adaptar fácilmente la forma en que se presentan mis colecciones para diferentes resoluciones. Una ventaja es que está listo para agregar rápidamente nuevos tipos de celdas cuando se refactorice en el futuro.
No veo el sentido de las vistas de mesa. Es muy sencillo utilizar una vista de colección para representar una tabla. OMI.
fuente
Depende totalmente de cómo se muestren sus datos. Como lo mencionaron muchos anteriormente, si solo necesita un único conjunto de datos y eso tampoco es complejo, opte por
UITableView
otro usoUICollectionView
.UICollectionView
es fácil de personalizar.Si está tratando con varias alturas de celda, entonces hágalo
UICollectionView
.fuente
Desde mi experiencia personal, los dos elementos solo deben compararse libremente.
TableView
Un TableView es un elemento de la interfaz de usuario diseñado para mostrar datos en formato de lista. Existe cierta funcionalidad que viene de serie con UITableView, como:
Los elementos anteriores mejoran la usabilidad de los datos cuando se muestran e interactúan en un formato de lista. Como ver correos electrónicos.
CollectionView
Un CollectionView es un elemento de la interfaz de usuario diseñado para mostrar contenido con un diseño personalizado (generalmente cualquier cosa que no sea una lista). CollectionViews mejora la funcionalidad de mostrar datos en estilos de diseño completamente personalizados y también cambia los diseños dinámicamente sobre la marcha. Algunos ejemplos son:
CollectionViews también permite múltiples selecciones.
Conclusión
Como puede ver en lo anterior, ambos tienen casos de uso completamente diferentes y están diseñados para mejorar el desarrollo y la usabilidad de sus propios conjuntos de datos específicos.
Si está buscando mostrar algo en un estilo de lista con las siguientes interacciones: - Agregar - Eliminar - Reordenar Luego, UITableView simplificará este proceso al proporcionar el soporte directamente desde el primer momento.
Cualquier otra cosa, debe aprovechar los beneficios de CollectionView ya que tiene más flexibilidad.
fuente
Ambos dependen de los requisitos. Las vistas de tabla también admiten una variedad de escenarios de edición. Este soporte no se ha implementado en las clases de Vista de colección. Si está convirtiendo desde una vista de tabla que se basa en estos métodos, espere hacer un poco más de trabajo pesado en la vista de colección. Los encabezados de las secciones de Vista de colección se pueden colocar en cualquier lugar dentro de la vista. y UITableView no necesitan establecer botones con etiquetas u otras cosas obteniendo valores de elementos seleccionados.
fuente
En la práctica, todos usan UICollectionView con el que me he encontrado, cuando solo necesitan un UITableView. "Es unidimensional. Sube y baja. ¿Por qué está agregando métodos de delegado innecesarios para el diseño Y los datos?". Una vez pasé 2 horas adicionales ayudando a una startup a descubrir por qué su UICollectionViewCell se aplastó porque el propietario, que no leyó el manual de animaciones, ni HIG, ni la guía UICollectionView, decidió usarlo y agregar alturas variables y animaciones. No hace falta decir que se dio un dolor de cabeza y perdió mucho tiempo en un problema no crítico para el negocio que podría haber evitado simplemente usando una celda de tabla, ya que no hay delegado de diseño adicional + Nib.
Déjame aclarar esto, estoy a favor de UICollectionView cuando tus datos y pantalla lo necesiten. Son muy poderosos. Pero en la práctica, la mayoría de las personas que he visto las han estado usando en listas.
Esto trae a colación otro defecto. También se utilizan en listas breves y constantes que no cambiarán nunca. En este caso, simplemente haga un Xib. O escriba una vista personalizada que los apile. ¿Por qué? Porque no necesita la gestión de memoria para 5 juegos de etiquetas con un botón o interruptor. Si pueden cambiar, entonces sí, use una lista. Si quieres física, entonces UICollectionView funciona bien con algunos efectos geniales. Pero, ¿realmente necesita agregar 5 métodos de delegado y un sistema de diseño para 5 etiquetas que nunca se moverán?
Además, no olvido que iOS ahora también tiene una vista de apilamiento nativa. Nunca consigo que se deforme como quiero, a pesar de que soy bastante experto en los sistemas 2D y de animación, por lo que nunca uso el integrado.
Todo lo que digo es que defina sus requisitos. Tal vez no necesite ninguno de estos, si su interfaz de usuario no está agregando / eliminando elementos y actualizándose. O tal vez desee escribir un juego de cartas y tirarlos virtualmente en una mesa, luego use UICollectionView con un sistema de física para su guía de diseño.
fuente
Según nuestra necesidad, elegimos TableView o CollectionView.
Ejemplo:
fuente
Tuve este problema en mi proyecto actual. Cuál usar. En mi caso fue realmente simple. Necesitaba ambos. Necesitaba que mi vista se pareciera a UITableView y también cambiar su cambio / diseño. Entonces, se usó UICollectionView. También uso UITableView en todos los lugares donde no necesito ninguna personalización adicional. Dado que UiTableView viene con un diseño predeterminado que incluye imágenes y texto, lo uso por simplicidad.
fuente
Según nuestro requisito, elegimos la vista UITableView o UICollection.
Si queremos mostrar imágenes o elementos en tipo de cuadrícula o si necesitamos más personalización, usamos UICollectionview.
Para enumerar cada elemento con detalles y subdetalles, usamos UITableView.
UICollectionView: la clase UICollectionView administra una colección ordenada de elementos de datos y los presenta mediante diseños personalizables. Las vistas de colección brindan la misma función general que las vistas de tabla, excepto que una vista de colección puede admitir más que solo diseños de una sola columna.
UITableView: una vista de tabla muestra una lista de elementos en una sola columna. UITableView es una subclase de UIScrollView, que permite a los usuarios desplazarse por la tabla, aunque UITableView solo permite el desplazamiento vertical.
fuente
Según mi vista para la visualización de la vista de cuadrícula, use la vista de colección de la interfaz de usuario.
fuente
Personalmente, creo que UICollectionView puede hacer la mayor parte del trabajo que puede hacer UITableview. bueno, al mismo tiempo, es más complejo de usar.
Le sugiero que use UICollectionView como TableView en caso de que su gerente cambie los requisitos en el futuro.
fuente