Работа с контроллерами панели вкладок tvOS в Xamarin

Для многих типов приложений tvOS основная навигация представлена в виде панели вкладок, работающей в верхней части экрана. Пользователь проводит пальцем влево и вправо по списку возможных категорий и области содержимого под изменениями, чтобы отразить выбор пользователя.

Sample Tab Bar

Панель вкладок по умолчанию полупрозрачна и всегда отображается в верхней части экрана. При фокусе панель вкладок будет охватывать верхние 140 пикселей экрана, но быстро сместится, когда фокус перемещается в область содержимого ниже.

Панели вкладок в tvOS

Он UITabViewController работает аналогичным образом и служит аналогичной целью в tvOS, как и в iOS, со следующими ключевыми различиями:

  • В отличие от панели вкладок на iOS, которая отображается в нижней части экрана, панели вкладок в tvOS занимают верхние 140 пикселей экрана и по умолчанию являются полупрозрачными.
  • Когда фокус покидает панель вкладок для области содержимого ниже, панель вкладок быстро скользит в верхней части экрана и будет скрыта. Пользователь может нажать кнопку меню один раз или провести пальцем вверх по удаленному элементу Siri, чтобы снова отобразить панель вкладок.
  • Прокрутка вниз на Siri Remote переместит фокус на область содержимого под панелью вкладок к первому фокусируемому элементу в отображаемом содержимом. Опять же, при этом панель вкладок будет скрыта после смены фокуса.
  • Щелкнув, чтобы выбрать категорию, отображаемую на панели вкладок, переключится на содержимое этой категории и фокус будет переключен на первый фокусируемый элемент в этом представлении.
  • Число категорий, отображаемых на панели вкладок, должно быть исправлено, и все категории должны быть доступны в любое время, данная категория никогда не должна быть отключена.
  • Панели вкладок не поддерживают настройку в tvOS. Кроме того, они не отображают больше категории (например, iOS), если есть больше категорий, чем можно поместить на панели вкладок.

Apple предлагает следующие предложения по работе с табуляции:

  • Используйте панели вкладок для логического упорядочения содержимого . Используйте панель вкладок для логического упорядочения содержимого, с которым работает ваше приложение tvOS. Например, "Избранные", "Верхние диаграммы", "Приобретенный" и "Поиск".
  • Добавьте значки для информирования пользователей о новом содержимом . При необходимости можно отобразить значок (красный овал с белым номером или восклицательным знаком), чтобы сообщить пользователю о новом содержимом в категории.
  • Используйте индикаторы событий. Не загромождая панель вкладок с индикаторами событий и отображайте их только в том месте, где они предоставляют важную информацию пользователю.
  • Ограничить количество категорий. Чтобы уменьшить сложность и обеспечить управление приложением, не перегружайте панель вкладок с категориями и убедитесь, что все категории видны и не переполнены. Простые, короткие названия работают лучше всего.
  • Не отключать категорию . Все вкладки (категории) всегда должны быть видимыми и включены в любое время. Если заданная вкладка не содержит содержимого, предоставьте пользователю объяснение, почему. Например, вкладка "Покупки" будет пуста, если пользователь не приобрел покупки.

Элементы панели вкладок

Каждая категория (вкладка) на панели вкладок представлена элементом панели вкладок (UITabBarItem). У Apple есть следующие предложения по работе с элементами панели вкладок:

  • Использование вкладок на основе текста. Хотя элемент панели вкладок может быть представлен как значок, Apple предлагает использовать текст только потому, что краткое название проще интерпретировать, чем значок.
  • Используйте короткие, значимые существительные или глаголы . Элемент панели вкладок должен четко ретранслировать содержимое, которое оно содержит и работает лучше, если это простое существительное (например, фотографии, фильмы или музыка) или глаголы (например, поиск или воспроизведение).

Панели вкладок и раскадровки

Самый простой способ работы с табуляции в приложении Xamarin.tvOS — добавить их в пользовательский интерфейс приложения с помощью конструктора iOS.

  1. Запустите новое приложение Xamarin.tvOS и выберите tvOS>App Tabbed App:>

    Select Tabbed App

  2. Следуйте всем запросам на создание нового решения Xamarin.tvOS.

  3. На панели решений дважды щелкните Main.storyboard файл и откройте его для редактирования.

  4. Чтобы изменить значок или заголовок для данной категории, выберите элемент панели вкладок для контроллера представления в структуре документа:

    The Tab Bar Item for the View Controller in the Document Outline

  5. Затем задайте необходимые свойства на вкладке "Мини-приложение" Обозреватель свойств:

    The Widget Tab

  6. Чтобы добавить новую категорию (вкладка), удалите контроллер представления на область конструктора:

    A View Controller

  7. Щелкните элемент управления и перетащите его из контроллера представления табуляции в новый контроллер представления.

  8. В всплывающем параметров выберите контроллеры представлений, чтобы добавить новое представление в виде вкладки (категория):

    Select Tab

  9. Создайте макет пользовательского интерфейса для каждой области содержимогоCaterogies как обычно, добавив элементы пользовательского интерфейса в конструктор iOS.

  10. Предоставьте все необходимые события для работы с элементами управления пользовательского интерфейса в коде C#.

  11. Назовите все элементы управления пользовательского интерфейса, которые вы хотите предоставить в коде C#.

  12. Сохранение изменений.

Внимание

Хотя можно назначить такие события, как элемент пользовательского интерфейса (напримерUIButton, в конструкторе iOS), он никогда не будет вызываться, так как TouchUpInside Apple TV не имеет сенсорного экрана или поддерживает события сенсорного ввода. При создании обработчиков событий для элементов пользовательского интерфейса tvOS всегда следует использовать Primary Action событие.

Дополнительные сведения о работе с раскадровками см. в руководстве по началу работы с раскадровки Hello, tvOS.

Работа с панелью вкладок

Items Используйте свойство UITabBar для доступа к коллекцииUITabBarItems, содержащей индексированные массивы от нуля (0). Свойство SelectedItem возвращает выбранную в данный момент вкладку (категория) в виде UITabBarItem.

Работа с элементами панели вкладок

Чтобы отобразить значок на заданной вкладке (красный овал с белым текстом), используйте следующий код:

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

Это приведет к следующим результатам при выполнении:

A Tab Bar Item with badge

Title Используйте свойство для изменения заголовка UITabBarItem и Image свойства, чтобы изменить значок.

Итоги

В этой статье рассматривается проектирование и работа с контроллером панели вкладок в приложении Xamarin.tvOS.