Práce s kontrolery rozděleného zobrazení tvOS v Xamarinu

Upozorňující

Návrhář pro iOS byl v sadě Visual Studio 2019 verze 16.8 a Visual Studio 2019 pro Mac verze 8.8 zastaralý a odebrán v sadě Visual Studio 2019 verze 16.9 a Visual Studio pro Mac verze 8.9. Doporučený způsob, jak vytvářet uživatelská rozhraní pro iOS, je přímo na Macu, na kterém běží Tvůrce rozhraní Xcode. Další informace naleznete v tématu Navrhování uživatelských rozhraní pomocí Xcode.

Kontroler rozděleného zobrazení současně prezentuje a spravuje hlavní a podrobný kontroler zobrazení na obrazovce. Kontrolery rozděleného zobrazení slouží k prezentaci trvalého, fokusovatelného obsahu v zobrazení předlohy (menší oddíl vlevo) a souvisejících podrobností v zobrazení podrobností (větší oddíl vpravo).

Sample Split View

Informace o kontrolerů rozděleného zobrazení

Jak je uvedeno výše, kontroler rozděleného zobrazení spravuje hlavní a podrobný kontroler zobrazení, které jsou prezentovány vedle sebe, přičemž předloha je menší zobrazení na levé straně, detail větší na pravé straně.

Kontroler hlavního zobrazení může být navíc skrytý nebo zobrazený podle potřeby:

The Master View Controller hidden

Kontrolery rozdělených zobrazení se často používají k prezentaci seznamu filtrovatelného obsahu s kategoriemi v zobrazení předlohy a filtrovanými výsledky v zobrazení podrobností. Obvykle se zobrazuje jako zobrazení tabulky na levé straně a zobrazení kolekce vpravo.

Při návrhu uživatelského rozhraní, které vyžaduje split view controller, Apple navrhuje používat řadiče hlavního a podrobného zobrazení, které se nemění (pouze změny obsahu, ne struktura). Pokud potřebujete vyměnit kontrolery zobrazení, je nejlepší použít navigační kontroler jako základ kontroleru zobrazení, který je potřeba změnit (master nebo detail).

Apple nabízí následující návrhy pro práci s řadiči rozděleného zobrazení:

  • Použijte správné procento rozdělení – Ve výchozím nastavení používá řadič rozděleného zobrazení jednu třetinu obrazovky pro řadič hlavního zobrazení a dvě třetiny pro kontroler podrobného zobrazení. Volitelně můžete použít rozdělení 50/50. Zvolte správné procento, aby se obsah zobrazoval na obrazovce vyváženě.
  • Zachovat hlavní výběr – zatímco obsah v zobrazení podrobností se může změnit, je odpověď na výběr uživatele v zobrazení předlohy, měl by být opraven obsah zobrazení předlohy. Kromě toho byste měli jasně zobrazit aktuálně vybranou položku v zobrazení předlohy.
  • Použijte jeden sjednocený název – obvykle budete chtít použít jeden název uprostřed v zobrazení podrobností místo názvu v zobrazení podrobností i v zobrazení předlohy.

Rozdělené kontrolery zobrazení a scénáře

Nejjednodušší způsob, jak pracovat s kontrolery rozděleného zobrazení 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 kontrolery rozděleného zobrazení ze sady nástrojů a přetáhněte ho do zobrazení:

    A Split View Controller

  3. Ve výchozím nastavení nainstaluje iOS Designer do hlavního zobrazení navigační kontroler a kontroler zobrazení. Pokud to nevyhovuje požadavkům vaší aplikace, jednoduše je odstraňte.

  4. Pokud odeberete výchozí zobrazení předlohy, přetáhněte nový kontroler zobrazení na návrhovou plochu:

    A View Controller

  5. Control-Click and drag from the Split View Controller to the new Master View Controller.

  6. V místní nabídce vyberte předlohu:

    Select Master from the Popup Menu

  7. Navrhněte obsah zobrazení předlohy a podrobností:

    Example layout

  8. Přiřaďte názvy na kartě widgetu na panelu vlastností, abyste mohli pracovat s ovládacími prvky uživatelského rozhraní v kódu jazyka C#.

  9. Uložte změny a vraťte se do Visual Studio pro Mac.

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

Práce s kontrolery rozděleného zobrazení

Jak je uvedeno výše, kontroler rozděleného zobrazení se často používá v situacích, kdy uživateli zobrazujete filtrovaný obsah. Hlavní kategorie se zobrazují vlevo v zobrazení předlohy a filtrované výsledky vpravo v zobrazení podrobností na základě výběru uživatele.

Přístup k hlavnímu serveru a podrobnostem

Pokud potřebujete přistupovat k řadiči hlavního a podrobného zobrazení programově, použijte ViewControllers vlastnost Split View Controller. Příklad:

// Gain access to master and detail view controllers
var masterController = ViewControllers [0] as MasterViewController;
var detailController = ViewControllers [1] as DetailViewController;

Zobrazuje se jako pole, kde první prvek (0) v řadiči hlavního zobrazení a druhý prvek (1) je Detail.

Přístup k podrobnostem z předlohy

Vzhledem k tomu, že obvykle v zobrazení podrobností zobrazujete podrobné informace na základě výběru uživatele v hlavním zobrazení, budete potřebovat způsob, jak získat přístup k podrobnostem z předlohy.

Nejjednodušším způsobem, jak to udělat, je zveřejnit vlastnost třídy Master View Controller, například:

public DetailViewController DetailController { get; set;}

V řadiči rozděleného zobrazení přepište metodu ViewDidLoad a propojte obě zobrazení dohromady. Příklad:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    // Gain access to master and detail view controllers
    var masterController = ViewControllers [0] as MasterViewController;
    var detailController = ViewControllers [1] as DetailViewController;

    // Wire-up views
    masterController.SplitViewController = this;
    masterController.DetailController = detailController;
    detailController.SplitViewController = this;
}

Vlastnosti a metody můžete zveřejnit na kontroleru zobrazení podrobností, který může předloha použít k prezentaci nových dat podle potřeby.

Zobrazení a skrytí předlohy

Volitelně můžete zobrazit a skrýt hlavní kontroler zobrazení pomocí PreferredDisplayMode vlastnosti Split View Controller. Příklad:

// Show hide split view
if (SplitViewController.DisplayMode == UISplitViewControllerDisplayMode.PrimaryHidden) {
    SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible;
} else {
    SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryHidden;
}

Výčet UISplitViewControllerDisplayMode definuje, jak bude hlavní kontroler zobrazení prezentován jako jeden z následujících:

  • Automaticky – tvOS řídí prezentaci zobrazení předlohy a podrobností.
  • PrimaryHidden – Tím se skryje hlavní kontroler zobrazení.
  • AllVisible – zobrazuje řídicí i podrobné kontrolery zobrazení vedle sebe. Toto je normální výchozí prezentace.
  • PrimaryOverlay – Kontroler zobrazení podrobností se rozšiřuje pod a je pokryt hlavní kontroler.

Chcete-li získat aktuální stav prezentace, použijte DisplayMode vlastnost Split View Controller.

Shrnutí

Tento článek popisuje návrh a práci s kontrolery rozděleného zobrazení v aplikaci Xamarin.tvOS.