UITableView es uno de los componentes de vista más útiles y comúnmente utilizados en el desarrollo de iOS. Ayuda a mostrar datos en una lista desplazable, como una fuente de noticias, una lista de recordatorios o cualquier tabla de elementos.
UITableView contiene UITableViewCells. Para comprender la relación entre los dos, piense en una matriz y elementos. Puede asignar fácilmente elementos de una matriz a la celda en una vista de tabla. Además, puede crear secciones para mapear varios arreglos o un arreglo 2D.
A continuación se muestra un ejemplo del uso de UITableView. La aplicación Configuración nativa utiliza una vista de tabla con secciones. La primera sección tiene 3 celdas, mientras que la segunda sección tiene 1 celda.
Por lo general, las celdas utilizadas en una vista de tabla tienen el mismo diseño y tamaño, lo que reduce la sobrecarga de volver a dibujar las celdas. Sin embargo, Apple le permite crear cualquier variedad de celdas para una vista de tabla.
Abra la aplicación Xcode en su Mac para crear un nuevo proyecto. Seleccione el nuevo proyecto de aplicación de la ventana emergente y proporcione un buen título para el Nombre del producto. Para nuestro proyecto de ejemplo, lo llamamos ColorList. Su interfaz debe ser Storyboard y el idioma configurado en Swift.
Pregunta: ¿Por qué Storyboard? Para 'Interfaz' estamos usando Storyboard, pero si tiene curiosidad, la otra opción es SwiftUI. SwiftUI es el último avance en el diseño de interfaces de usuario, pero muchos desarrolladores creen que aún no está completamente listo para la producción como iOS 14.
Por último, puede seguir el camino anterior y crear también la interfaz de usuario completa en código. Pero me gusta mantener las cosas de la vista separadas en lugar de un controlador gordo.
Cada nueva aplicación viene con un controlador de vista y un guión gráfico. En palabras simples, cada pantalla de la aplicación es un UIViewController en código.
Eso es todo, su interfaz de usuario de vista de tabla desplazable está lista para funcionar. Puede agregar las restricciones para que se estire al 100% en ancho y alto.
El siguiente paso es crear los puntos de venta en la clase de controlador de vista. De esa manera, podemos tener acceso a la vista de tabla en nuestro controlador para agregar aún más la lógica empresarial y de la interfaz de usuario. Hay varias formas de hacerlo. Aquí está el más rápido:
La vista de tabla tiene dos objetos débiles dentro de la clase UITableView para completar los datos y administrar la delegación. Débil significa que los objetos no se retienen con fuerza.
El objeto dataSource es responsable de proporcionar celdas y sus datos para una vista de tabla. Es de 'UITableViewDataSource?' escribe.
El objeto delegado es de 'UITableViewDelegate?' escribe. Maneja la selección, eliminación, encabezado/pie de página y otras acciones relacionadas.
Para comenzar,
override func viewDidLoad () { super .viewDidLoad() // Do any additional setup after loading the view. tableView.delegate = self tableView.dataSource = self }
class ViewController : UIViewController , UITableViewDelegate , UITableViewDataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { // TODO: Return items count return 0 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // TODO: Return cell return UITableViewCell() }
let rainbow: [UIColor] = [.red, .yellow, .green, .orange, .blue, .purple, .magenta] func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return rainbow.count }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "colorCell" , for : indexPath) cell.backgroundColor = rainbow[indexPath.item] return cell }
UITableView es su vista de interfaz de usuario en la mayoría de los casos en los que se desea un comportamiento de desplazamiento. UITableView hereda de UIScrollView, al igual que UICollectionView, una vista similar a UITableView donde puede tener celdas en ambos sentidos, es decir, horizontal y vertical.
La celda que estamos usando es la celda de vista de tabla predeterminada proporcionada por iOS. Puede crear una clase personalizada y, como en los pasos anteriores, conectar la interfaz de usuario y la clase. Cargaremos una guía práctica la próxima semana para crear una UITableViewCell de diseño personalizado.
La celda predeterminada puede proporcionar una vista de título, fondo y accesorios. Agregaremos un título usando defaultConfiguration- así:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "colorCell" , for : indexPath) cell.backgroundColor = rainbow[indexPath.item] //Default Content Configuration var content = cell.defaultContentConfiguration() content.text = rainbow[indexPath.item].accessibilityName.capitalized cell.contentConfiguration = content return cell }
Así es como se verá:
Puede crear diferentes celdas de diseño en la misma vista de tabla. Al asignar diferentes identificadores, puede quitar la cola de su celda requerida. El método dequeueReusableCell mejora el rendimiento al crear solo celdas visibles en la pantalla y algunas más. Al almacenar en caché las celdas de manera eficiente, puede proporcionar una experiencia de usuario fluida.
Así es como debería verse todo el código. Puede descargar el código fuente de muestra desde aquí.
Háganos saber lo que creó con UITableView en nuestra comunidad Hackernoon .