Botões no Xamarin.iOS
No iOS, a UIButton
classe representa um controle de botão.
As propriedades de um botão podem ser modificadas programaticamente ou com o Construtor de Interfaces do Xcode.
Criando um botão programaticamente
Um UIButton
pode ser criado com apenas algumas linhas de código.
Instancie um botão e especifique seu tipo:
UIButton myButton = new UIButton(UIButtonType.System);
O tipo do botão é especificado por uma
UIButtonType
propriedade:-
UIButtonType.System
- Um botão de uso geral -
UIButtonType.DetailDisclosure
- Indica a disponibilidade de informações detalhadas, geralmente sobre um item específico em uma tabela -
UIButtonType.InfoDark
- Indica a disponibilidade das informações de configuração; de cor escura -
UIButtonType.InfoLight
- Indica a disponibilidade das informações de configuração; de cor clara -
UIButtonType..AddContact
- Indica que um contato pode ser adicionado -
UIButtonType.Custom
- Botão Personalizável
Para obter mais informações sobre os diferentes tipos de botão, dê uma olhada em:
- A seção Tipos de botão personalizados deste documento
- A receita Tipos de botão
- Diretrizes de interface humana do iOS da Apple.
-
Defina o tamanho e a posição do botão:
myButton.Frame = new CGRect(25, 25, 300, 150);
Defina o texto do botão. Use o
SetTitle
método , que requer o texto e umUIControlState
valor para o estado do botão:myButton.SetTitle("Hello, World!", UIControlState.Normal);
Os tipos de estado do botão estão listados abaixo:
UIControlState.Normal
UIControlState.Highlighted
UIControlState.Disabled
UIControlState.Selected
UIControlState.Focused
UIControlState.Application
UIControlState.Reserved
Para obter mais informações sobre como estilizar um botão e definir seu texto, consulte:
- A seção Estilo de um botão deste documento
- A receita de texto do botão Definir .
Manipulando um toque de botão
Para responder a um toque de botão, forneça um manipulador para o evento do TouchUpInside
botão:
myButton.TouchUpInside += (sender, e) => {
DoSomething();
};
Observação
TouchUpInside
não é o único evento de botão disponível.
UIButton
é uma classe filho de UIControl
, que define muitos eventos diferentes.
Estilizando um botão
UIButton
os controles podem existir em vários estados diferentes, cada um especificado por um UIControlState
valor – Normal
, Disabled
, Focused
, etcHighlighted
. Cada estado pode receber um estilo exclusivo, especificado programaticamente ou com o Designer do iOS.
Observação
Para obter uma lista completa de todos os UIControlState
valores, dê uma olhada no
UIKit.UIControlState enumeration
Documentação.
Por exemplo, para definir a cor do título e a cor da sombra para UIControlState.Normal
:
myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);
O código a seguir define o título do botão como uma cadeia de caracteres atribuída (estilizada) para UIControlState.Normal
e UIControlState.Highlighted
:
var normalAttributedTitle = new NSAttributedString(buttonTitle, foregroundColor: UIColor.Blue, strikethroughStyle: NSUnderlineStyle.Single);
myButton.SetAttributedTitle(normalAttributedTitle, UIControlState.Normal);
var highlightedAttributedTitle = new NSAttributedString(buttonTitle, foregroundColor: UIColor.Green, strikethroughStyle: NSUnderlineStyle.Thick);
myButton.SetAttributedTitle(highlightedAttributedTitle, UIControlState.Highlighted);
Tipos de botão personalizados
Botões com um UIButtonType
de Custom
não têm estilos padrão. No entanto, é possível configurar a aparência do botão definindo uma imagem para seus estados diferentes:
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand.png"), UIControlState.Normal);
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand_Highlight.png"), UIControlState.Highlighted);
myButton.SetImage (UIImage.FromBundle ("Buttons/MagicWand_On.png"), UIControlState.Selected);
Dependendo se o usuário estiver tocando no botão ou não, ele será renderizado como uma das seguintes imagens (UIControlState.Normal
UIControlState.Highlighted
e UIControlState.Selected
estados, respectivamente):
Para obter mais informações sobre como trabalhar com botões personalizados, consulte a receita Usar uma imagem para um botão .