Boutons dans Xamarin.iOS
Dans iOS, la UIButton
classe représente un contrôle bouton.
Les propriétés d’un bouton peuvent être modifiées par programmation ou avec le générateur d’interface de Xcode.
Création d’un bouton par programmation
Un UIButton
peut être créé avec seulement quelques lignes de code.
Instanciez un bouton et spécifiez son type :
UIButton myButton = new UIButton(UIButtonType.System);
Le type du bouton est spécifié par une
UIButtonType
propriété :UIButtonType.System
- Un bouton à usage généralUIButtonType.DetailDisclosure
- Indique la disponibilité d’informations détaillées, généralement sur un élément spécifique dans une tableUIButtonType.InfoDark
- Indique la disponibilité des informations de configuration ; de couleur foncéeUIButtonType.InfoLight
- Indique la disponibilité des informations de configuration ; de couleur claireUIButtonType..AddContact
- Indique qu’un contact peut être ajoutéUIButtonType.Custom
- Bouton personnalisable
Pour plus d’informations sur les différents types de boutons, consultez :
- Section Types de boutons personnalisés de ce document
- Recette des types de boutons
- Recommandations relatives à l’interface humaine iOS d’Apple.
Définissez la taille et la position du bouton :
myButton.Frame = new CGRect(25, 25, 300, 150);
Définissez le texte du bouton. Utilisez la
SetTitle
méthode , qui nécessite le texte et uneUIControlState
valeur pour l’état du bouton :myButton.SetTitle("Hello, World!", UIControlState.Normal);
Les types d’état du bouton sont répertoriés ci-dessous :
UIControlState.Normal
UIControlState.Highlighted
UIControlState.Disabled
UIControlState.Selected
UIControlState.Focused
UIControlState.Application
UIControlState.Reserved
Pour plus d’informations sur le style d’un bouton et la définition de son texte, reportez-vous à :
- Section Style d’un bouton de ce document
- Recette de texte du bouton Définir .
Gestion d’un appui sur un bouton
Pour répondre à un appui sur un bouton, fournissez un gestionnaire pour l’événement du TouchUpInside
bouton :
myButton.TouchUpInside += (sender, e) => {
DoSomething();
};
Notes
TouchUpInside
n’est pas le seul événement de bouton disponible. UIButton
est une classe enfant de UIControl
, qui définit de nombreux événements différents.
Style d’un bouton
UIButton
les contrôles peuvent exister dans un certain nombre d’états différents, chacun spécifié par une UIControlState
valeur : Normal
, Disabled
, Focused
, Highlighted
, etc. Chaque état peut recevoir un style unique, spécifié par programmation ou avec le Designer iOS.
Notes
Pour obtenir la liste complète de toutes les UIControlState
valeurs, consultezUIKit.UIControlState enumeration
Documentation.
Par exemple, pour définir la couleur de titre et la couleur d’ombre pour UIControlState.Normal
:
myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);
Le code suivant définit le titre du bouton sur une chaîne attributée (stylisée) pour UIControlState.Normal
et 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);
Types de boutons personnalisés
Les boutons avec un UIButtonType
de n’ont Custom
aucun style par défaut. Toutefois, il est possible de configurer l’apparence du bouton en définissant une image pour ses différents états :
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);
Selon que l’utilisateur touche ou non le bouton, il s’affiche sous la forme d’une des images suivantes (UIControlState.Normal
UIControlState.Highlighted
et UIControlState.Selected
états, respectivement) :
Pour plus d’informations sur l’utilisation des boutons personnalisés, reportez-vous à la recette Utiliser une image pour un bouton .