Tlačítka v Xamarin.iOS

V iOSu UIButton třída představuje ovládací prvek tlačítka.

Vlastnosti tlačítka je možné upravit programově nebo pomocí Tvůrce rozhraní Xcode.

Programové vytvoření tlačítka

A UIButton lze vytvořit pouze s několika řádky kódu.

  • Vytvořte instanci tlačítka a zadejte jeho typ:

    UIButton myButton = new UIButton(UIButtonType.System);
    

    Typ tlačítka je určen vlastností UIButtonType :

    • UIButtonType.System - Tlačítko pro obecné účely
    • UIButtonType.DetailDisclosure - Označuje dostupnost podrobných informací, obvykle o konkrétní položce v tabulce.
    • UIButtonType.InfoDark - Označuje dostupnost informací o konfiguraci; tmavě barevná
    • UIButtonType.InfoLight - Označuje dostupnost informací o konfiguraci; světle barevná
    • UIButtonType..AddContact - Označuje, že kontakt lze přidat.
    • UIButtonType.Custom - Přizpůsobitelné tlačítko

    Další informace o různýchtypech

  • Definujte velikost a umístění tlačítka:

    myButton.Frame = new CGRect(25, 25, 300, 150);
    
  • Nastavte text tlačítka. Použijte metodu SetTitle , která vyžaduje text a UIControlState hodnotu pro stav tlačítka:

    myButton.SetTitle("Hello, World!", UIControlState.Normal);
    

    Typy stavů tlačítka jsou uvedené níže:

    • UIControlState.Normal
    • UIControlState.Highlighted
    • UIControlState.Disabled
    • UIControlState.Selected
    • UIControlState.Focused
    • UIControlState.Application
    • UIControlState.Reserved

    Další informace o stylu tlačítka a nastavení jeho textu najdete v tématu:

Zpracování klepnutí na tlačítko

Pokud chcete odpovědět na klepnutí na tlačítko, zadejte obslužnou rutinu události tlačítka TouchUpInside :

myButton.TouchUpInside += (sender, e) => {
    DoSomething();
};

Poznámka:

TouchUpInside není jedinou dostupnou událostí tlačítka. UIButton je podřízená třída UIControl, která definuje mnoho různých událostí.

Stylování tlačítka

UIButton ovládací prvky mohou existovat v řadě různých stavů, z nichž každý je určen hodnotou UIControlStateNormal, Disabled, Focused, Highlightedatd. Každý stav může mít jedinečný styl, určený programově nebo pomocí iOS Designeru.

Poznámka:

Úplný seznamvšechch UIControlStateUIKit.UIControlState enumeration Dokumentace.

Pokud chcete například nastavit barvu nadpisu a barvu stínu pro UIControlState.Normal:

myButton.SetTitleColor(UIColor.White, UIControlState.Normal);
myButton.SetTitleShadowColor(UIColor.Black, UIControlState.Normal);

Následující kód nastaví název tlačítka na atribut (stylizovaný) řetězec pro UIControlState.Normal a 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);

Vlastní typy tlačítek

Tlačítka s UIButtonTypeCustom výchozími styly nemají žádné výchozí styly. Vzhled tlačítka je ale možné nakonfigurovat nastavením obrázku pro různé stavy:

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);

V závislosti na tom, UIControlState.Highlighted jestli se uživatel dotkne tlačítka nebo ne, se zobrazí jako jeden z následujících obrázků (UIControlState.Normala UIControlState.Selected stavů):

UIControlState.NormalUIControlState.HighlightedUIControlState.Selected

Další informace o práci s vlastními tlačítky najdete v tématu Použití obrázku pro recept na tlačítko .