Elementos de tabla y funcionalidad en Xamarin.iOS
UITableView puede tener un estilo "agrupado" o "sin formato" y consta de las siguientes partes:
- Encabezado de sección
- Celdas (o filas, si lo prefiere)
- Pie de página de sección
- Índice
- modo de edición (incluye ‘deslizar el dedo para eliminar’ y arrastrar identificadores para cambiar el orden de las filas)
Estas capturas de pantalla muestran cómo se muestran las filas de sección, los encabezados, los pies de página, los controles de edición y el índice.
Estas partes se describen con más detalle a continuación:
Encabezado de sección
Opcionalmente, las celdas se pueden agrupar en secciones, etiquetadas con un encabezado personalizado o etiquetados con un pie de página. El encabezado se puede establecer con un valor de cadena o una vista personalizada para permitir un diseño o estilo diferente.
Celdas
Las celdas son el elemento principal de la interfaz de usuario de una tabla. Cuando se implementan correctamente, las celdas se reutilizan para aumentar la eficiencia de la memoria. Hay cuatro estilos de celda integrados y puede crear sus propias celdas personalizadas, ya sea en el código o en el Diseñador al usar Guiones gráficos.
Pie de página de sección
El pie de página de sección opcional se puede establecer con un valor de cadena o se puede proporcionar una vista personalizada para permitir un diseño o estilo diferente. Los encabezados de sección y los pies de página se pueden establecer de forma independiente.
Índice
El índice aparece como una franja de caracteres hacia abajo en el borde derecho de la tabla. Al tocar o arrastrar en el índice se acelera el desplazamiento a esa parte de la tabla. Un índice es opcional, pero se recomienda para ayudar a navegar por listas largas. Normalmente no se usa un índice con el estilo agrupado.
Modo de edición
Hay un par de características de edición diferentes disponibles:
- Deslizar el dedo para eliminar celdas individuales.
- Entrar en el modo Edición para mostrar los botones de eliminación en cada fila
- Entrar en el modo Edición para revelar los tiradores de reordenación.
- Insertar nuevas celdas (con animación).
El resto de este documento muestra cómo implementar todas estas características UITableView con Xamarin.iOS.
Información general sobre clases
Las clases principales que se usan para mostrar vistas de tabla se muestran aquí:
A continuación, se describe el propósito de cada clase:
- UITableView: vista que contiene una colección de celdas dentro de un contenedor de desplazamiento. La vista de tabla suele usar toda la pantalla en una aplicación de iPhone, pero puede existir como parte de una vista más grande en el iPad (o aparecer en una ventana emergente).
- UITableViewCell: vista que representa una sola celda (o fila) en una vista de tabla. Hay cuatro tipos de celda integrados y es posible crear celdas personalizadas en C# o con iOS Designer.
- UITableViewSource:clase abstracta exclusiva de Xamarin.iOS que proporciona todos los métodos necesarios para mostrar una tabla, incluido el recuento de filas, devolver una vista de celda para cada fila, controlar la selección de filas y muchas otras características opcionales. Debe subclasificar esto para que funcione UITableView.
- NSIndexPath: contiene propiedades de fila y sección que identifican de forma única la posición de una celda en una tabla.
- UITableViewController: un UIViewController listo para usar que tiene un UITableView codificado como vista y es accesible a través de la propiedad TableView.
- UIViewController: si la tabla no ocupa toda la pantalla, puede agregar UITableView a cualquier UIViewController con su marco establecido adecuadamente.
UITableViewSource reemplaza las dos clases siguientes, que siguen estando disponibles en Xamarin.iOS, pero normalmente no son necesarias:
- UITableViewDataSource: un protocolo Objective-C que se modela en Xamarin.iOS como una clase abstracta. Debe subclasificarse para proporcionar una tabla con una vista para cada celda, así como información sobre encabezados, pies de página y el número de filas y secciones de la tabla.
- UITableViewDelegate: un protocolo Objective-C que se modela en Xamarin.iOS como una clase. Controla la selección, las características de edición y otras características de tabla opcionales.
En este documento, todos los ejemplos usan UITableViewSource y omiten estas dos clases. Se mencionan aquí porque los ejemplos de Objective-C que se encuentran en la documentación de Apple harán referencia a ellos, por lo que resulta útil comprender lo que hacen (y que puede usar UITableViewSource de Xamarin.iOS en su lugar).