Uso dei controller di visualizzazione divisa tvOS in Xamarin

Avviso

IOS Designer è stato deprecato in Visual Studio 2019 versione 16.8 e Visual Studio 2019 per Mac versione 8.8 e rimosso in Visual Studio 2019 versione 16.9 e Visual Studio per Mac versione 8.9. Il modo consigliato per creare interfacce utente iOS è direttamente in un Mac che esegue Interface Builder di Xcode. Per altre informazioni, vedere Progettazione di interfacce utente con Xcode.

Un controller di visualizzazione divisa presenta e gestisce un controller visualizzazione master e dettagli affiancato, sullo schermo contemporaneamente. I controller di visualizzazione divisa vengono usati per presentare contenuto persistente e attivabile nella visualizzazione master (la sezione più piccola a sinistra) e i dettagli correlati nella visualizzazione dettagli (la sezione più grande a destra).

Visualizzazione divisa di esempio

Informazioni sui controller di visualizzazione divisa

Come indicato in precedenza, un controller di visualizzazione divisa gestisce un controller visualizzazione master e dettaglio presentato side-by-side, con il master che è la visualizzazione più piccola a sinistra, il dettaglio più grande a destra.

Inoltre, il controller di visualizzazione master può essere nascosto o visualizzato come richiesto:

Il controller di visualizzazione master nascosto

I controller di suddivisione delle visualizzazioni vengono spesso usati per presentare un elenco di contenuto filtrabile, con le categorie nella visualizzazione master e i risultati filtrati nella visualizzazione dettagli. Questo viene in genere presentato come visualizzazione tabella a sinistra e una visualizzazione raccolta a destra.

Quando si progetta un'interfaccia utente che richiede un controller di doppia visualizzazione, Apple suggerisce l'uso di controller di visualizzazione master e dettagli che non cambiano (solo il contenuto cambia, non la struttura). Se è necessario scambiare controller di visualizzazione, è consigliabile usare un controller di spostamento come base del controller di visualizzazione che deve cambiare (master o dettagli).

Apple offre i suggerimenti seguenti per l'uso dei controller di visualizzazione divisa:

  • Usare la percentuale di divisione corretta: per impostazione predefinita, il controller di visualizzazione divisa usa un terzo dello schermo per il controller di visualizzazione master e due terzi per il controller di visualizzazione dettagli. Facoltativamente, è possibile usare una divisione di 50/50. Scegliere la percentuale corretta per rendere il contenuto bilanciato sullo schermo.
  • Rendere persistente la selezione principale: mentre il contenuto nella visualizzazione dettagli può cambiare è la risposta alla selezione di un utente nella visualizzazione master, il contenuto della visualizzazione master deve essere corretto. Inoltre, dovresti mostrare chiaramente l'elemento attualmente selezionato nella visualizzazione master.
  • Usa un titolo singolo, unificato : in genere, vuoi usare un singolo titolo centrato nella visualizzazione dettagli, anziché un titolo sia nel dettaglio che nella visualizzazione master.

Controller di visualizzazione divisa e storyboard

Il modo più semplice per usare i controller di visualizzazione divisa in un'app Xamarin.tvOS consiste nell'aggiungerli all'interfaccia utente dell'app usando progettazione iOS.

  1. Nel riquadro della soluzione fare doppio clic sul Main.storyboard file e aprirlo per la modifica.

  2. Trascinare un controller di visualizzazione divisa dalla casella degli strumenti e rilasciarlo nella visualizzazione:

    Un controller di visualizzazione divisa

  3. Per impostazione predefinita, progettazione iOS installerà un controller di spostamento e un controller di visualizzazione nella visualizzazione master. Se questo non soddisfa i requisiti dell'app, è sufficiente eliminarli.

  4. Se si rimuove la visualizzazione master predefinita, trascinare un nuovo controller di visualizzazione nell'area di progettazione:

    Un controller di visualizzazione

  5. Fare clic sul controllo e trascinare dal controller Dividi visualizzazione al nuovo controller di visualizzazione master.

  6. Selezionare Master dal menu popup:

    Selezionare Master dal menu popup

  7. Progettare il contenuto delle visualizzazioni master e dettagli:

    Layout di esempio

  8. Assegnare nomi nella scheda Widget del riquadro proprietà per usare i controlli dell'interfaccia utente nel codice C#.

  9. Salvare le modifiche e tornare a Visual Studio per Mac.

Per altre informazioni sull'uso degli storyboard, vedere la guida introduttiva hello, tvOS.

Uso dei controller di visualizzazione divisa

Come indicato in precedenza, un controller di visualizzazione divisa viene spesso usato in situazioni in cui si visualizza il contenuto filtrato per l'utente. Le categorie principali vengono visualizzate a sinistra nella visualizzazione master e i risultati filtrati a destra nella visualizzazione dettagli in base alla selezione dell'utente.

Accesso a master e dettagli

Se è necessario accedere ai controller di visualizzazione master e dettagli a livello di codice, utilizzare la ViewControllers proprietà del controller di visualizzazione divisa. Ad esempio:

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

Viene presentato come matrice, dove il primo elemento (0) nel controller di visualizzazione master e il secondo elemento (1) è Il dettaglio.

Accesso ai dettagli dal master

Poiché in genere vengono visualizzate informazioni dettagliate nella visualizzazione dettagli in base alla selezione dell'utente nel master, è necessario un modo per accedere al dettaglio dal master.

Il modo più semplice per eseguire questa operazione consiste nell'esporre una proprietà nella classe Master View Controller, ad esempio:

public DetailViewController DetailController { get; set;}

In Split View Controller eseguire l'override del ViewDidLoad metodo e collegare le due visualizzazioni. Ad esempio:

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

È possibile esporre proprietà e metodi nel controller visualizzazione dettagli che il master può usare per presentare nuovi dati in base alle esigenze.

Visualizzazione e nascondere il master

Facoltativamente, è possibile visualizzare e nascondere il controller visualizzazione master usando la PreferredDisplayMode proprietà del controller di visualizzazione divisa. Ad esempio:

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

L'enumerazione UISplitViewControllerDisplayMode definisce come verrà presentato il controller di visualizzazione master come uno dei seguenti:

  • Automatico : tvOS controlla la presentazione delle visualizzazioni master e dettagli.
  • PrimaryHidden : nasconde il controller di visualizzazione master.
  • AllVisible : visualizza sia il master che i controller di visualizzazione dettagli affiancati. Si tratta della normale presentazione predefinita.
  • PrimaryOverlay : il controller di visualizzazione dettagli si estende in ed è coperto dal master.

Per ottenere lo stato di presentazione corrente, utilizzare la DisplayMode proprietà del controller di visualizzazione divisa.

Riepilogo

Questo articolo ha illustrato la progettazione e l'uso di controller di split view all'interno di un'app Xamarin.tvOS.