Share via


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:

  • 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 einen UIControlState 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:

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, Highlightedusw. 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 unterUIKit.UIControlState enumeration Dokumentation.

So legen Sie beispielsweise die Titel- und Schattenfarbe für UIControlState.Normalfest:

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.Highlightedfest:

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.Normalbzw UIControlState.HighlightedUIControlState.Selected . Zustände) gerendert:

UIControlState.NormalUIControlState.Selected UIControlState.Selected UIControlState.Selected UIControlState.SelectedUIControlState.Selected

Weitere Informationen zum Arbeiten mit benutzerdefinierten Schaltflächen finden Sie unter Verwenden eines Bilds für eine Schaltfläche .