Compartir vía


Botones en Xamarin.iOS

En iOS, la clase UIButton representa un control de botón.

Las propiedades de un botón se pueden modificar mediante programación o con Interface Builder de Xcode.

Creación de un botón mediante programación

Se puede crear un UIButton con solo unas pocas líneas de código.

  • Cree una instancia de un botón y especifique su tipo:

    UIButton myButton = new UIButton(UIButtonType.System);
    

    El tipo del botón se especifica mediante una propiedad UIButtonType:

    • UIButtonType.System: un botón de uso general
    • UIButtonType.DetailDisclosure: indica la disponibilidad de información detallada, por lo general, sobre un elemento específico de una tabla
    • UIButtonType.InfoDark: indica la disponibilidad de la información de configuración; color oscuro
    • UIButtonType.InfoLight: indica la disponibilidad de la información de configuración; color claro
    • UIButtonType..AddContact: indica que se puede agregar un contacto
    • UIButtonType.Custom: botón personalizable

    Para obtener más información sobre los distintos tipos de botón, eche un vistazo a:

  • Defina el tamaño y la posición del botón:

    myButton.Frame = new CGRect(25, 25, 300, 150);
    
  • Establezca el texto del botón. Use el método SetTitle, que requiere el texto y un valor UIControlState para el estado del botón:

    myButton.SetTitle("Hello, World!", UIControlState.Normal);
    

    A continuación, se enumeran los tipos de estado del botón:

    • UIControlState.Normal
    • UIControlState.Highlighted
    • UIControlState.Disabled
    • UIControlState.Selected
    • UIControlState.Focused
    • UIControlState.Application
    • UIControlState.Reserved

    Para obtener más información sobre cómo aplicar estilo a un botón y establecer su texto, consulte:

Control de una pulsación de botón

Para responder a una pulsación de botón, proporcione un control para el evento TouchUpInside del botón:

myButton.TouchUpInside += (sender, e) => {
    DoSomething();
};

Nota:

TouchUpInside no es el único evento de botón disponible. UIButton es una clase secundaria de UIControl, que define muchos eventos diferentes.

Aplicar estilo a un botón

Los controles UIButton pueden existir en varios estados diferentes, cada uno especificado por un valor UIControlState: Normal, Disabled, Focused, Highlighted, etc. A cada estado se le puede dar un estilo único, especificado mediante programación o con iOS Designer.

Nota:

Para obtener una lista completa de todos los valores UIControlState, eche un vistazo a Documentación de UIKit.UIControlState enumeration.

Por ejemplo, para establecer el color de título y el color de sombra para UIControlState.Normal:

myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);

El código siguiente establece el título del botón en una cadena con atributos (estilizados) para UIControlState.Normal y 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ón personalizados

Los botones con un UIButtonType de Custom no tienen estilos predeterminados. Sin embargo, es posible configurar la apariencia del botón estableciendo una imagen para sus distintos estados:

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);

Dependiendo de si el usuario está tocando el botón o no, se representará como una de las siguientes imágenes (estados UIControlState.Normal, UIControlState.Highlighted y UIControlState.Selected respectivamente):

UIControlState.NormalUIControlState.HighlightedUIControlState.Selected

Para más información sobre cómo trabajar con botones personalizados, consulte la receta Usar una imagen para un botón.