Adicionando formatação específica do iOS
Uma maneira de definir a formatação específica do iOS é criar um renderizador personalizado para um controle e definir estilos e cores específicos da plataforma para cada plataforma.
Outras opções para controlar a aparência Xamarin.Forms do aplicativo iOS incluem:
- Configurando opções de exibição em Info.plist
- Definindo estilos de controle por meio da
UIAppearance
API
Essas alternativas são discutidas abaixo.
Personalizando Info.plist
O arquivo Info.plist permite configurar alguns aspectos da renderização de um aplicativo iOS, como (e se) a barra de status é mostrada.
Por exemplo, o exemplo todo usa o seguinte código para definir a cor da barra de navegação e a cor do texto em todas as plataformas:
var nav = new NavigationPage (new TodoListPage ());
nav.BarBackgroundColor = Color.FromHex("91CA47");
nav.BarTextColor = Color.White;
O resultado é mostrado no snippet de tela abaixo. Observe que os itens da barra de status são pretos (isso não pode ser definido dentro Xamarin.Forms porque é um recurso específico da plataforma).
O ideal é que a barra de status também seja branca – algo que podemos realizar diretamente no projeto do iOS. Adicione as seguintes entradas ao Info.plist para forçar a barra de status a ser branca:
ou edite o arquivo Info.plist correspondente diretamente para incluir:
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Agora, quando o aplicativo é executado, a barra de navegação é verde e seu texto é branco (devido à Xamarin.Forms formatação) e o texto da barra de status também é branco graças à configuração específica do iOS:
UIAppearance API
A UIAppearance
API pode ser usada para definir propriedades visuais em muitos controles iOS sem precisar criar um renderizador personalizado.
Adicionar uma única linha de código ao método AppDelegate.cs pode estilizar todos os controles FinishedLaunching
de um determinado tipo usando sua Appearance
propriedade. O código a seguir contém dois exemplos : estilo global da barra de tabulação e controle de comutador:
AppDelegate.cs no projeto do iOS
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
// tab bar
UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
// switch
UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
// required Xamarin.Forms code
Forms.Init ();
LoadApplication (new App ());
return base.FinishedLaunching (app, options);
}
UITabBar
Por padrão, o ícone de barra de guias selecionado em umTabbedPage
seria azul:
Para alterar esse comportamento, defina a UITabBar.Appearance
propriedade :
UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
Isso faz com que a guia selecionada seja verde:
Usar essa API permite personalizar a aparência do Xamarin.FormsTabbedPage
no iOS com muito pouco código. Consulte a receita Personalizar Guias para obter mais detalhes sobre como usar um renderizador personalizado para definir uma fonte específica para a guia.
UISwitch
O Switch
controle é outro exemplo que pode ser facilmente estilizado:
UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
Essas duas capturas de tela mostram o controle padrão UISwitch
à esquerda e a versão personalizada (configurando Appearance
) à direita no exemplo Todo:
Outros controles
Muitos controles de interface do usuário do iOS podem ter suas cores padrão e outros atributos definidos usando a UIAppearance
API.