Sdílet prostřednictvím


Práce s segmentovanými ovládacími prvky tvOS v Xamarinu

Segmentovaný ovládací prvek poskytuje sadu lineárních prvků, z nichž každý může obsahovat ikonu nebo text a slouží k poskytnutí sady souvisejících voleb pro uživatele.

Ovládací prvky ukázkového segmentu

Apple nabízí následující návrhy pro práci s segmentovanými ovládacími prvky:

  • Poskytnout ample mezery – péče by měla být potřeba k zajištění ample mezery mezi ostatními fokusovatelnými položkami a segmentovaným ovládacím prvku. Jednotlivý segment se vybere, když je fokus (ne když na něj kliknete) a uživatel může náhodně změnit segmenty, když ve skutečnosti chce vybrat jinou prioritní položku v aktuálním segmentu.
  • Použití rozdělených zobrazení pro filtrování obsahu – Segmentované ovládací prvky nevyužívá filtrování obsahu, protože rozdělená zobrazení byla navržena pro snadnou navigaci mezi obsahem a filtry.
  • Limit na sedm segmentů Max – měli byste se pokusit zachovat maximální počet segmentů pod osmi (8), protože je snazší parsovat z celé místnosti na gauči a snadněji se pohybovat.
  • Použijte konzistentní velikost obsahu segmentu – Všechny segmenty mají stejnou šířku a pokud je to možné, měli byste se pokusit zachovat obsah v jednotlivých segmentech se stejnou velikostí. Díky tomu jsou ovládací prvky segmentů vizuálně příjemnější, ale přehlednější.
  • Vyhněte se kombinování ikon a textu – každý jednotlivý segment může obsahovat buď ikonu, nebo text, ale ne obojí. I když je možné kombinovat ikony i text ve stejném segmentovaném ovládacím prvku, měli byste se tomu vyhnout.

O ikonách segmentů

Apple navrhuje použití jednoduchých rozpoznatelných obrázků pro ikony segmentů, jako je lupa pro hledání. Příliš složité ikony se obtížně rozpoznávají na televizní obrazovce v celé místnosti, takže je nejlepší omezit ikony na jednoduché reprezentace.

V daném segmentu nelze kombinovat text i ikony a měli byste se vyhnout kombinování ikon a textu v jednom segmentovaném ovládacím prvku. Měl by to být buď všechny ikony, nebo veškerý text.

Segment Text

Apple vytvoří následující návrhy pro práci s textem segmentu:

  • Použití krátkých, smysluplných podstatných jmen – Název segmentu by měl jasně uvést typ obsahu, který by měl uživatel očekávat při výběru daného segmentu. Například: Hudba nebo videa.
  • Použití velká písmena nadpisu – Každé slovo názvu segmentů by mělo být velkými písmeny s výjimkou článků, spojení a předložek s méně než čtyřmi (4) znaky.
  • Používejte krátké, prioritní nadpisy – ponechte názvy, krátké a zaměřené na typ obsahu, který se má očekávat, když je vybraný segment.

Opět nelze kombinovat text i ikony v daném segmentu a měli byste se vyhnout kombinování ikon a textu v jednom segmentovaném ovládacím prvku.

Segmentové ovládací prvky a scénáře

Nejjednodušší způsob, jak pracovat s ovládacími prvky segmentů v aplikaci Xamarin.tvOS, je přidat je do uživatelského rozhraní aplikace pomocí iOS Designeru.

  1. V oblasti řešení poklikejte na Main.storyboard soubor a otevřete ho pro úpravy.

  2. Přetáhněte ovládací prvek segmentů ze sady nástrojů a přetáhněte ho do zobrazení:

    Ovládací prvek segmentů

  3. Na kartě Widget v oblasti vlastností můžete upravit několik vlastností ovládacího prvku segmentů, jako je jeho styl a stav:

    Karta Widget

  4. Pomocí pole Segments můžete řídit počet segmentů v kontroleru.

  5. Výběrem daného segmentu v rozevíracím seznamu segmentů můžete upravit jeho jednotlivé vlastnosti, jako je název nebo obrázek , a určit, jestli je daný segment při zobrazení ovládacího prvku povolený nebo vybraný .

  6. Nakonec k ovládacím prvkům přiřaďte názvy , abyste na ně mohli reagovat v kódu jazyka C#. Příklad:

    Přiřazení názvu

  7. Uložte provedené změny.

Další informace o práci se storyboardy najdete v naší úvodní příručce Hello, tvOS.

Práce se segmentovanými ovládacími prvky

Jak je uvedeno výše, segmentovaný ovládací prvek poskytuje sadu lineárních prvků, z nichž každý může obsahovat ikonu nebo text a slouží k poskytnutí sady souvisejících voleb pro uživatele.

V aplikaci Xamarin.tvOS můžete pracovat s segmentovanými ovládacími prvky několika různými způsoby.

Vystavené jako názvy a události

Pokud jste vytvořili ovládací prvek segmentů v Návrháři rozhraní a odhalili ho jako pojmenovaný ovládací prvek a událost, můžete pomocí následujícího kódu reagovat na změnu segmentu:

partial void PlayerCountChanged (Foundation.NSObject sender) {

    // Take action based on the number of players selected
    switch(PlayerCount.SelectedSegment) {
    case 0:
        // Do something if the segment is selected
        ...
        break;
    case 1:
        // Do something if the segment is selected
        ...
        break;
    case 2:
        // Do something if the segment is selected
        ...
        break;
    }
}

V případě výše uvedeného příkladu byl ovládací prvek segmentů zpřístupněn jako PlayerCount název a PlayerCountChanged akce události. Další informace o práci s akcemi a výstupy naleznete v části Psaní kódu s výstupy a akcemi v naší úvodní příručce Hello, tvOS.

Vlastnost SelectedSegment získá nebo nastaví aktuálně vybraný segment jako index založený na nule (0). Pokud tedy máte pět (5) segmentů, první segment bude mít index nuly (0) a poslední index čtyř (4).

Úprava segmentů

Kdykoli můžete změnit číslo i obsah segmentovaných ovládacích prvků. Pomocí následujícího kódu vložte nový segment ikony:

// Icon Segment
SegmentedControl.InsertSegment(UIImage.FromFile("icon.png"), 0, true);

// Text Segment
SegmentedControl.InsertSegment("New Segment", 0, true);

Druhý parametr definuje, kam se segment vloží pomocí indexu založeného na nule (0). Pokud je true posledním parametrem vložení, bude animované.

Pokud chcete odebrat daný segment, použijte následující:

SegmentedControl.RemoveSegmentAtIndex(0, true);

Nebo pokud chcete odebrat všechny segmenty, můžete je odebrat takto:

SegmentedControl.RemoveAllSegments();

Opět platí, že pokud je trueposledním parametrem , odebrání bude animované. NumberOfSegments Pomocí vlastnosti vrátí aktuální počet segmentů.

Chcete-li získat název nebo ikonu pro daný segment, použijte následující:

// Get title
var title = SegmentedControl.TitleAt(0);

// Get icon
var icon = SegmentedControl.ImageAt(0);

Pokud chcete změnit název nebo ikonu, použijte následující:

// Set title
SegmentedControl.SetTitle("New Title", 0);

// Set icon
SegmentedControl.SetImage(UIImage.FromFile("icon.png"), 0);

Pokud chcete zjistit, jestli je daný segment povolený, použijte následující:

if (SegmentedControl.IsEnabled(0)) {
    // Do something
    ...
}

Pokud chcete povolit nebo zakázat daný segment, použijte následující:

SegmentedControl.SetEnabled(false, 0);

Úprava vzhledu segmentovaného ovládacího prvku

Pomocí následujícího kódu můžete změnit pozadí daného segmentu na obrázek:

SegmentedControl.SetBackgroundImage (UIImage.FromFile("background.png"), UIControlState.Normal, UIBarMetrics.Default);

Kde UIControlState určuje stav ovládacího prvku, pro který nastavujete obrázek takto:

  • Normální
  • Zvýrazněné
  • Zakázáno
  • Selected
  • Focused

A UIBarMetrics určuje metriky, které se mají použít jako:

  • Výchozí
  • Compact
  • DefaultPrompt
  • CompactPrompt

Kromě toho můžete oddělovač mezi segmenty nastavit pomocí:

SegmentedControl.SetDividerImage (UIImage.FromFile("divider.png"), UIControlState.Normal, UIControlState.Normal, UIBarMetrics.Default);

Kde první UIControlState určuje stav segmentu vlevo od děliče a druhý UIControlState určuje stav segmentu vpravo.

Shrnutí

Tento článek popisuje návrh a práci se segmentovaným řízením v aplikaci Xamarin.tvOS.