Freigeben über


Arbeiten mit tvOS-Registerkartenleistencontrollern in Xamarin

Für viele Arten von tvOS-Apps wird die primäre Navigation als Tabstoppleiste angezeigt, die über dem oberen Bildschirmrand ausgeführt wird. Der Benutzer wischen nach links und rechts über die Liste der möglichen Kategorien und den Inhaltsbereich unterhalb der Änderungen, um die Auswahl des Benutzers widerzuspiegeln.

Beispielregisterkartenleiste

Die Registerkartenleiste ist standardmäßig transluzent und wird immer oben auf dem Bildschirm angezeigt. Wenn sie sich im Fokus befinden, deckt eine Registerkartenleiste die oberen 140 Pixel des Bildschirms ab, gleitet aber schnell weg, wenn sich der Fokus in den darunter liegenden Inhaltsbereich verschiebt.

Registerkartenleisten in tvOS

Die UITabViewController Funktionsweise funktioniert auf ähnliche Weise und dient einem ähnlichen Zweck auf tvOS wie in iOS, mit den folgenden wichtigen Unterschieden:

  • Im Gegensatz zur Registerkartenleiste unter iOS, die unten auf dem Bildschirm angezeigt wird, belegen Tableisten in tvOS die oberen 140 Pixel des Bildschirms und sind standardmäßig transluzent.
  • Wenn der Fokus die Tabstoppleiste für den darunter liegenden Inhaltsbereich verlässt, wird die Registerkartenleiste schnell vom oberen Bildschirmrand geschoben und ausgeblendet. Der Benutzer kann entweder einmal auf die Menüschaltfläche tippen oder auf der Siri-Fernbedienung nach oben wischen, um die Registerkartenleiste erneut anzuzeigen.
  • Wenn Sie auf der Siri-Fernbedienung nach unten wischen, wird der Fokus auf den Inhaltsbereich unterhalb der Registerkartenleiste auf das erste fokussierbare Element im angezeigten Inhalt verschoben. Auch hier wird die Registerkartenleiste ausgeblendet, sobald sich der Fokus verschiebt.
  • Wenn Sie auf eine kategorie klicken, die in der Registerkartenleiste angezeigt wird, wechseln Sie zum Inhalt dieser Kategorie, und der Fokus wird in dieser Ansicht auf das erste fokussierbare Element umgestellt.
  • Die Anzahl der kategorien, die in der Registerkartenleiste angezeigt werden, sollte behoben sein, und alle Kategorien sollten jederzeit zugänglich sein, eine bestimmte Kategorie sollte niemals deaktiviert werden.
  • Registerkartenleisten unterstützen keine Anpassung auf tvOS. Darüber hinaus wird die "Weitere Kategorie" (z. B. iOS) nicht angezeigt, wenn mehr Kategorien vorhanden sind, als in die Registerkartenleiste passen können.

Apple hat die folgenden Vorschläge für die Arbeit mit Registerkartenleisten:

  • Verwenden Sie Tabstoppleisten, um Inhalte logisch zu organisieren – Verwenden Sie die Registerkartenleiste, um die Inhalte, mit denen Ihre tvOS-App arbeitet, logisch zu organisieren. Beispiel: Empfohlene Diagramme, Top-Diagramme, gekauft und suchen.
  • Fügen Sie Badges hinzu, um Benutzer über neue Inhalte zu informieren – Sie können optional ein Signal (ein rotes Oval mit einer weißen Zahl oder ausrufezeichen) anzeigen, um den Benutzer über neue Inhalte in einer Kategorie zu informieren.
  • Sparsame Verwendung von Badges – Überladen Sie die Registerkartenleiste nicht mit Signalen, und zeigen Sie sie nur an, wo sie dem Benutzer wichtige Informationen bereitstellen.
  • Beschränken Sie die Anzahl der Kategorien – Um die Komplexität zu reduzieren und Die App überschaubar zu halten, überladen Sie die Registerkartenleiste nicht mit Kategorien, und stellen Sie sicher, dass alle Kategorien sichtbar und nicht überfüllt sind. Einfache, kurze Titel funktionieren am besten.
  • Deaktivieren Sie keine Kategorie – Alle Registerkarten (Kategorien) sollten immer sichtbar und jederzeit aktiviert sein. Wenn eine bestimmte Registerkarte keinen Inhalt hat, geben Sie dem Benutzer eine Erklärung dafür an. Die Registerkarte "Einkäufe" ist beispielsweise leer, wenn der Benutzer keine Einkäufe getätigt hat.

Registerkartenleistenelemente

Jede Kategorie (Registerkarte) in der Registerkartenleiste wird durch ein Registerkartenleistenelement (UITabBarItem) dargestellt. Apple hat die folgenden Vorschläge zum Arbeiten mit Registerkartenleistenelementen:

  • Verwenden Sie textbasierte Registerkarten – Während das Element der Registerkartenleiste als Symbol dargestellt werden kann, schlägt Apple die Verwendung von Text nur vor, weil ein präziser Titel einfacher zu interpretieren ist als ein Symbol.
  • Verwenden Sie kurze, aussagekräftige Substantive oder Verben – Ein Registerkartenleistenelement sollte den Inhalt, den es enthält, deutlich weiterleiten und am besten funktioniert, wenn es sich um ein einfaches Substantiv (z. B. Fotos, Filme oder Musik) oder Verben (z. B. Suche oder Wiedergabe) handelt.

Registerkartenleisten und Storyboards

Die einfachste Möglichkeit zum Arbeiten mit Tableisten in einer Xamarin.tvOS-App besteht darin, sie mithilfe des iOS-Designers zur Benutzeroberfläche der App hinzuzufügen.

  1. Starten Sie eine neue Xamarin.tvOS-App, und wählen Sie "tvOS>App>Tabbed App" aus:

    Registerkarten-App auswählen

  2. Folgen Sie allen Anweisungen, um eine neue Xamarin.tvOS-Lösung zu erstellen.

  3. Doppelklicken Sie auf dem Lösungspad auf die Main.storyboard Datei, und öffnen Sie sie zur Bearbeitung.

  4. Um das Symbol oder den Titel für eine bestimmte Kategorie zu ändern, wählen Sie das Registerkartenleistenelement für den Ansichtscontroller in der Dokumentgliederung aus:

    Das Registerkartenleistenelement für den Ansichtscontroller in der Dokumentgliederung

  5. Legen Sie dann die erforderlichen Eigenschaften auf der Registerkarte "Widget" des Eigenschaften-Explorers fest:

    Die Registerkarte

  6. Wenn Sie eine neue Kategorie (Registerkarte) hinzufügen möchten, legen Sie einen Ansichtscontroller auf der Entwurfsoberfläche ab:

    Ein Ansichtscontroller

  7. Klicken Sie mit gedrückter CTRL-TASTE, und ziehen Sie ihn vom Registerkartenansichtscontroller auf den neuen Ansichtscontroller.

  8. Wählen Sie im Popup Ansichtscontroller aus, um die neue Ansicht als Registerkarte (Kategorie) hinzuzufügen:

    Registerkarte auswählen

  9. Entwerfen Sie das Layout der Benutzeroberfläche für jeden Caterogies-Inhaltsbereich normal, indem Sie UI-Elemente im iOS-Designer hinzufügen.

  10. Machen Sie alle erforderlichen Ereignisse verfügbar, um mit Ihren UI-Steuerelementen im C#-Code zu arbeiten.

  11. Benennen Sie alle UI-Steuerelemente, die Sie im C#-Code verfügbar machen möchten.

  12. Speichern Sie die Änderungen.

Wichtig

Obwohl es möglich ist, Ereignisse wie TouchUpInside z. B. einem UI-Element (z. B. a UIButton) im iOS-Designer zuzuweisen, wird es nie aufgerufen, da Apple TV über keinen Touchscreen verfügt oder Touchereignisse unterstützt. Sie sollten das Primary Action Ereignis immer verwenden, wenn Sie Ereignishandler für tvOS-Benutzeroberflächenelemente erstellen.

Weitere Informationen zum Arbeiten mit Storyboards finden Sie in unserem Schnellstarthandbuch für Hello, tvOS.

Arbeiten mit Registerkartenleisten

Verwenden Sie die Items Eigenschaft des UITabBar Objekts, um auf die Auflistung UITabBarItems zuzugreifen, die als indiziertes Nullarray (0) enthalten ist. Die SelectedItem Eigenschaft gibt die aktuell ausgewählte Registerkarte (Kategorie) als ein UITabBarItem.

Arbeiten mit Registerkartenleistenelementen

Um ein Signal auf einer bestimmten Registerkarte anzuzeigen (ein rotes Oval mit weißem Text), verwenden Sie den folgenden Code:

// Display a badge
TabBar.Items [2].BadgeValue = "10";

Dies würde bei ausführung die folgenden Ergebnisse erzielen:

Ein Registerkartenleistenelement mit Signal

Verwenden Sie die Title Eigenschaft des UITabBarItem Titels und der Image Eigenschaft, um das Symbol zu ändern.

Zusammenfassung

Dieser Artikel befasst sich mit dem Entwerfen und Arbeiten mit dem Tab bar Controller innerhalb einer Xamarin.tvOS-App.