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 generalUIButtonType.DetailDisclosure
: indica la disponibilidad de información detallada, por lo general, sobre un elemento específico de una tablaUIButtonType.InfoDark
: indica la disponibilidad de la información de configuración; color oscuroUIButtonType.InfoLight
: indica la disponibilidad de la información de configuración; color claroUIButtonType..AddContact
: indica que se puede agregar un contactoUIButtonType.Custom
: botón personalizable
Para obtener más información sobre los distintos tipos de botón, eche un vistazo a:
- Sección Tipos de botón personalizados de este documento
- Receta Tipos de botón
- Directrices de interfaz humana de iOS de Apple.
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 valorUIControlState
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:
- La sección Aplicar estilo a un botón de este documento
- La receta Establecer texto de botón.
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):
Para más información sobre cómo trabajar con botones personalizados, consulte la receta Usar una imagen para un botón.