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).
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:
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.
V oblasti řešení poklikejte na
Main.storyboard
soubor a otevřete ho pro úpravy.Přetáhněte kontrolery rozděleného zobrazení ze sady nástrojů a přetáhněte ho do zobrazení:
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.
Pokud odeberete výchozí zobrazení předlohy, přetáhněte nový kontroler zobrazení na návrhovou plochu:
Control-Click and drag from the Split View Controller to the new Master View Controller.
V místní nabídce vyberte předlohu:
Navrhněte obsah zobrazení předlohy a podrobností:
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#.
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.