Schaltflächen in Xamarin.iOS
In iOS stellt die UIButton
-Klasse ein Schaltflächensteuerelement dar.
Die Eigenschaften einer Schaltfläche können entweder programmgesteuert oder mit dem Interface Builder von Xcode geändert werden.
Programmgesteuertes Erstellen einer Schaltfläche
Ein UIButton
kann mit nur wenigen Codezeilen erstellt werden.
Instanziieren Sie eine Schaltfläche, und geben Sie ihren Typ an:
UIButton myButton = new UIButton(UIButtonType.System);
Der Typ der Schaltfläche wird durch eine
UIButtonType
-Eigenschaft angegeben:-
UIButtonType.System
- Eine allgemeine Schaltfläche -
UIButtonType.DetailDisclosure
– Gibt die Verfügbarkeit von detaillierten Informationen an, in der Regel über ein bestimmtes Element in einer Tabelle. -
UIButtonType.InfoDark
– Gibt die Verfügbarkeit von Konfigurationsinformationen an; dunkel gefärbt -
UIButtonType.InfoLight
– Gibt die Verfügbarkeit von Konfigurationsinformationen an; hell gefärbt -
UIButtonType..AddContact
– Gibt an, dass ein Kontakt hinzugefügt werden kann. -
UIButtonType.Custom
- Anpassbare Schaltfläche
Weitere Informationen zu den verschiedenen Schaltflächentypen findest du unter:
- Abschnitt "Benutzerdefinierte Schaltflächentypen " dieses Dokuments
- Das Rezept für Schaltflächentypen
- Apples iOS-Richtlinien für die menschliche Benutzeroberfläche.
-
Definieren Sie die Größe und Position der Schaltfläche:
myButton.Frame = new CGRect(25, 25, 300, 150);
Legen Sie den Text der Schaltfläche fest. Verwenden Sie die
SetTitle
-Methode, die den Text und einenUIControlState
Wert für den Schaltflächenzustand erfordert:myButton.SetTitle("Hello, World!", UIControlState.Normal);
Die Zustandstypen der Schaltfläche sind unten aufgeführt:
UIControlState.Normal
UIControlState.Highlighted
UIControlState.Disabled
UIControlState.Selected
UIControlState.Focused
UIControlState.Application
UIControlState.Reserved
Weitere Informationen zum Formatieren einer Schaltfläche und zum Festlegen des zugehörigen Texts finden Sie unter:
- Der Abschnitt Formatieren einer Schaltfläche in diesem Dokument
- Das Textrezept der Schaltfläche festlegen .
Behandeln eines Tippens auf schaltflächen
Um auf ein Tippen auf eine Schaltfläche zu reagieren, geben Sie einen Handler für das Ereignis der Schaltfläche an TouchUpInside
:
myButton.TouchUpInside += (sender, e) => {
DoSomething();
};
Hinweis
TouchUpInside
ist nicht das einzige verfügbare Schaltflächenereignis.
UIButton
ist eine untergeordnete Klasse von UIControl
, die viele verschiedene Ereignisse definiert.
Formatieren einer Schaltfläche
UIButton
-Steuerelemente können in einer Reihe unterschiedlicher Zustände vorhanden sein, die jeweils durch einen UIControlState
Wert angegeben werden – Normal
, Disabled
, Focused
, Highlighted
usw. Jeder Zustand kann einen eindeutigen Stil erhalten, der programmgesteuert oder mit dem iOS-Designer angegeben wird.
Hinweis
Eine vollständige Liste aller UIControlState
Werte ist unter
UIKit.UIControlState enumeration
Dokumentation.
So legen Sie beispielsweise die Titel- und Schattenfarbe für UIControlState.Normal
fest:
myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);
Der folgende Code legt den Schaltflächentitel auf eine attributierte (stilisierte) Zeichenfolge für UIControlState.Normal
und UIControlState.Highlighted
fest:
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);
Benutzerdefinierte Schaltflächentypen
Schaltflächen mit einem UIButtonType
von Custom
weisen keine Standardstile auf. Es ist jedoch möglich, die Darstellung der Schaltfläche zu konfigurieren, indem Sie ein Bild für die verschiedenen Zustände festlegen:
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);
Je nachdem, ob der Benutzer die Schaltfläche berührt oder nicht, wird sie als eines der folgenden Bilder (UIControlState.Normal
bzw UIControlState.Highlighted
UIControlState.Selected
. Zustände) gerendert:
Weitere Informationen zum Arbeiten mit benutzerdefinierten Schaltflächen finden Sie unter Verwenden eines Bilds für eine Schaltfläche .