Trabalhando com controladores tvOS Split View no Xamarin
Aviso
O iOS Designer foi preterido no Visual Studio 2019 versão 16.8 e Visual Studio 2019 para Mac versão 8.8 e removido no Visual Studio 2019 versão 16.9 e Visual Studio para Mac versão 8.9. A maneira recomendada de criar interfaces de usuário do iOS é diretamente em um Mac executando o Construtor de Interfaces do Xcode. Para obter mais informações, consulte Criando interfaces de usuário com o Xcode.
Um Controlador de Visualização Dividida apresenta e gerencia um Controlador de Exibição Mestre e um Controlador de Exibição de Detalhes lado a lado, na tela ao mesmo tempo. Os Controladores de Visualização Dividida são usados para apresentar conteúdo persistente e focalizável no Modo de Exibição Mestre (a seção menor à esquerda) e detalhes relacionados no Modo de Exibição de Detalhes (a seção maior à direita).
Sobre os controladores Split View
Como dito acima, um Controlador de Visualização Dividida gerencia um Controlador de Exibição Mestre e um Controlador de Exibição de Detalhes que são apresentados lado a lado, com o Mestre sendo a exibição menor à esquerda, o Detalhe maior à direita.
Além disso, o Master View Controller pode ser oculto ou mostrado conforme necessário:
Os Controladores de Modos de Exibição Divididos geralmente são usados para apresentar uma lista de conteúdo filtrável, com as categorias no Modo de Exibição Mestre e os resultados filtrados no Modo de Exibição de Detalhes. Isso geralmente é apresentado como um Modo de Exibição de Tabela à esquerda e um Modo de Exibição de Coleção à direita.
Ao projetar uma interface de usuário que exija um controlador de visualização dividida, a Apple sugere o uso de controladores de exibição mestre e de exibição de detalhes que não mudam (apenas o conteúdo muda, não a estrutura). Se você precisar trocar os Controladores de Exibição, é melhor usar um Controlador de Navegação como base do Controlador de Exibição que precisa ser alterado (Mestre ou Detalhe).
A Apple tem as seguintes sugestões para trabalhar com controladores Split View:
- Usar a Porcentagem de Divisão Correta - Por padrão, o Controlador de Exibição Dividida usa um terço da tela para o Controlador de Exibição Mestre e dois terços para o Controlador de Exibição de Detalhes. Opcionalmente, você pode usar uma divisão 50/50. Escolha a porcentagem correta para fazer com que seu conteúdo pareça equilibrado na tela.
- Persistir a Seleção Principal - Embora o conteúdo no Modo de Exibição de Detalhes possa ser alterado como resposta à seleção de um usuário no Modo de Exibição Mestre, o conteúdo do Modo de Exibição Mestre deve ser corrigido. Além disso, você deve mostrar claramente o item selecionado no momento no Modo de Exibição Mestre.
- Usar um Título Único e Unificado - Normalmente, convém usar um único título centralizado no Modo de Exibição de Detalhes, em vez de um Título no Modo de Exibição Detalhado e no Modo de Exibição Mestre.
Controladores e storyboards de visualização dividida
A maneira mais fácil de trabalhar com controladores Split View em um aplicativo Xamarin.tvOS é adicioná-los à interface do usuário do aplicativo usando o iOS Designer.
No Solution Pad, clique duas vezes no arquivo e abra-o
Main.storyboard
para edição.Arraste um Split View Controllers da Caixa de Ferramentas e solte-o no View:
Por padrão, o Designer do iOS instalará um Controlador de Navegação e um Controlador de Exibição no Modo de Exibição Mestre. Se isso não atender aos requisitos do seu aplicativo, basta excluí-los.
Se você remover o Modo de Exibição Mestre padrão, arraste um novo Controlador de Exibição para a superfície de design:
Clique com a tecla Control pressionada e arraste do Controlador de Exibição Dividida para o novo Controlador de Exibição Mestre.
Selecione Mestre no menu pop-up:
Crie o conteúdo de suas visualizações mestre e detalhada:
Atribua nomes na guia Widget do Bloco de propriedades para trabalhar com seus controles de interface do usuário no código C#.
Salve suas alterações e retorne ao Visual Studio para Mac.
Para obter mais informações sobre como trabalhar com Storyboards, consulte nosso Guia de Início Rápido Olá, tvOS.
Trabalhando com controladores de visualização dividida
Como dito acima, um Split View Controller é frequentemente usado em situações em que você está exibindo conteúdo filtrado para o usuário. As categorias principais são exibidas à esquerda no Modo de Exibição Mestre e os resultados filtrados à direita no Modo de Exibição de Detalhes com base na seleção do usuário.
Acessando mestre e detalhes
Se você precisar acessar os controladores de exibição mestre e de detalhes programaticamente, use a ViewControllers
propriedade do controlador de exibição dividida. Por exemplo:
// Gain access to master and detail view controllers
var masterController = ViewControllers [0] as MasterViewController;
var detailController = ViewControllers [1] as DetailViewController;
Ele é apresentado como uma matriz, onde o primeiro elemento (0) no Master View Controller e o segundo elemento (1) é o Detail.
Acessando detalhes do mestre
Como você geralmente está exibindo informações detalhadas no Modo de Exibição de Detalhes com base na seleção do usuário no Mestre, você precisará de uma maneira de acessar o Detalhe do Mestre.
A maneira mais fácil de fazer isso é expor uma propriedade em sua classe Master View Controller, por exemplo:
public DetailViewController DetailController { get; set;}
No Split View Controller, substitua o ViewDidLoad
método e vincule os dois modos de exibição. Por exemplo:
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Gain access to master and detail view controllers
var masterController = ViewControllers [0] as MasterViewController;
var detailController = ViewControllers [1] as DetailViewController;
// Wire-up views
masterController.SplitViewController = this;
masterController.DetailController = detailController;
detailController.SplitViewController = this;
}
Você pode expor propriedades e métodos no Controlador de Exibição de Detalhes que o Mestre pode usar para apresentar novos dados conforme necessário.
Mostrando e ocultando o mestre
Opcionalmente, você pode mostrar e ocultar o Master View Controller usando a PreferredDisplayMode
propriedade do Split View Controller. Por exemplo:
// Show hide split view
if (SplitViewController.DisplayMode == UISplitViewControllerDisplayMode.PrimaryHidden) {
SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible;
} else {
SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryHidden;
}
O UISplitViewControllerDisplayMode
enum define como o Master View Controller será apresentado como um dos seguintes:
- Automático - o tvOS controlará a apresentação das Visualizações Mestre e Detalhada.
- PrimaryHidden - Isso oculta o Master View Controller.
- AllVisible - Exibe os controladores Master e Detail View lado a lado. Esta é a apresentação normal, padrão.
- PrimaryOverlay - O Controlador de Exibição de Detalhes se estende abaixo e é coberto pelo Mestre.
Para obter o estado de apresentação atual, use a DisplayMode
propriedade do Controlador de Exibição Dividida.
Resumo
Este artigo abordou o design e o trabalho com controladores Split View dentro de um aplicativo Xamarin.tvOS.