Partes de tabela e funcionalidade no Xamarin.iOS
Um UITableView pode ter um estilo 'agrupado' ou 'simples' e consiste nas seguintes partes:
- Cabeçalho da seção
- Células (ou linhas, se preferir)
- Rodapé da seção
- Index
- Modo de edição (inclui 'deslizar para excluir' e arrastar alças para alterar a ordem das linhas)
Essas capturas de tela mostram como linhas de seção, cabeçalhos, rodapés, controles de edição e o índice são exibidos.
Essas partes são descritas com mais detalhes abaixo:
Cabeçalho da seção
Opcionalmente, as células podem ser agrupadas em seções, rotuladas com um cabeçalho personalizado e/ou rotuladas com um rodapé. O cabeçalho pode ser definido com um valor de cadeia de caracteres ou uma exibição personalizada pode ser fornecida para permitir um layout ou estilo diferente.
Cells
As células são o principal elemento da interface do usuário de uma tabela. Quando implementadas corretamente, as células são reutilizadas para eficiência de memória. Há quatro estilos de célula internos e você pode criar suas próprias células personalizadas – no código ou no Designer ao usar Storyboards.
Rodapé da seção
O rodapé de seção opcional pode ser definido com um valor de cadeia de caracteres ou uma exibição personalizada pode ser fornecida para permitir um layout ou estilo diferente. Os cabeçalhos e rodapés de seção podem ser definidos de forma independente.
Índice
O índice aparece como uma faixa de caracteres na borda direita da tabela. Tocar ou arrastar o índice acelera a rolagem até essa parte da tabela. Um índice é opcional, mas é recomendado para ajudar a navegar em listas longas. Um índice geralmente não é usado com o estilo Agrupado.
Modo de edição
Há alguns recursos de edição diferentes disponíveis:
- Passe o dedo para excluir células individuais.
- Entrando no modo de edição para revelar botões de exclusão em cada linha
- Entrando no modo de edição para revelar alças de reordenação.
- Inserção de novas células (com animação).
O restante deste documento mostra como implementar todos esses recursos UITableView com o Xamarin.iOS.
Visão geral das aulas
As classes primárias usadas para exibir exibições de tabela são mostradas aqui:
O objetivo de cada aula é descrito abaixo:
- UITableView – Um modo de exibição que contém uma coleção de células dentro de um contêiner de rolagem. A exibição de tabela normalmente usa a tela inteira em um aplicativo para iPhone, mas pode existir como parte de uma exibição maior no iPad (ou aparecer em um popover).
- UITableViewCell – Um modo de exibição que representa uma única célula (ou linha) em um modo de exibição de tabela. Existem quatro tipos de células incorporadas e é possível criar células personalizadas em C# ou com o iOS Designer.
- UITableViewSource – classe abstrata exclusiva do Xamarin.iOS que fornece todos os métodos necessários para exibir uma tabela, incluindo contagem de linhas, retorno de uma exibição de célula para cada linha, manipulação de seleção de linha e muitos outros recursos opcionais. Você deve subclassificar isso para fazer um UITableView funcionar.
- NSIndexPath – Contém propriedades Row e Section que identificam exclusivamente a posição de uma célula em uma tabela.
- UITableViewController – Um UIViewController pronto para uso que tem um UITableView codificado como sua exibição e acessível por meio da propriedade TableView.
- UIViewController – Se a tabela não ocupar a tela inteira, você poderá adicionar um UITableView a qualquer UIViewController com seu Frame definido adequadamente.
UITableViewSource substitui as duas classes a seguir, que ainda estão disponíveis no Xamarin.iOS, mas normalmente não são necessárias:
- UITableViewDataSource – Um Objective-C protocolo que é modelado no Xamarin.iOS como uma classe abstrata. Deve ser subclassificado para fornecer uma tabela com uma exibição para cada célula, bem como informações sobre cabeçalhos, rodapés e o número de linhas e seções na tabela.
- UITableViewDelegate – Um Objective-C protocolo que é modelado no Xamarin.iOS como uma classe. Lida com seleção, recursos de edição e outros recursos opcionais de tabela.
Neste documento, todos os exemplos usam UITableViewSource e ignoram essas duas classes. Eles são mencionados aqui porque quaisquer Objective-C exemplos encontrados na documentação da Apple farão referência a eles, então é útil entender o que eles fazem (e que você pode usar o UITableViewSource do Xamarin.iOS).