Botones en Xamarin.iOS

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

Las propiedades de un botón se pueden modificar mediante programación o con el Generador de interfaz de Xcode.

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

Se UIButton puede crear 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 UIButtonType propiedad :

    • UIButtonType.System - Un botón de uso general
    • UIButtonType.DetailDisclosure : indica la disponibilidad de información detallada, normalmente 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 diferentes 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 SetTitle método , que requiere el texto y un UIControlState valor 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 estilos 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 controlador para el evento del TouchUpInside 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.

Aplicación de estilos a un botón

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

Nota

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

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 diferentes 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 (UIControlState.Normal, UIControlState.Highlighted y UIControlState.Selected estados, respectivamente):

UIControlState.NormalUIControlState.ResaltadoUIControlState.Selected

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