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:

  • 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 um UIControlState 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:

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

UIButtonos 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 noUIKit.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.NormalUIControlState.Highlightede UIControlState.Selected estados, respectivamente):

UIControlState.NormalUIControlState.HighlightedUIControlState.Selected

Para obter mais informações sobre como trabalhar com botões personalizados, consulte a receita Usar uma imagem para um botão .