Udostępnij za pośrednictwem


Praca z kontrolkami stron systemu tvOS na platformie Xamarin

Czasami może być konieczne wyświetlenie serii stron lub obrazów w aplikacji platformy Xamarin.tvOS. Kontrolka strony została zaprojektowana tak, aby wyraźnie pokazać, która strona znajduje się poza maksymalną liczbą stron. Kontrolka strony wyświetla serię kropek na ciemnym, owalnym tle. Na bieżącej stronie zostanie wyświetlona wypełniona kropka, a wszystkie inne strony będą wyświetlane jako puste kropki. Kontrolka Strona spowoduje przycięcie zewnętrznych większości kropek, jeśli w obszarze tła znajduje się zbyt wiele.

Przykładowa kontrolka strony

Kontrolka strony w nieinterakcyjnym elemecie zaprojektowanym do przekazywania opinii tylko użytkownikowi. Należy dodać inne kontrolki, aby zmienić bieżący numer strony (na przykład gesty lub przyciski).

Firma Apple ma następujące sugestie dotyczące korzystania z kontrolki strony:

  • Opcja Tylko pełne kolekcje — kontrolki strony działają najlepiej w środowisku pełnoekranowym, aby wyświetlić wiele stron, które istnieją w jednej kolekcji.
  • Ogranicz liczbę stron — kontrolki strony działają najlepiej dla dziesięciu (10) lub mniejszej liczby stron oraz maksymalnie dwudziestu (20) stron. W przypadku ponad dwudziestu stron rozważ użycie widoku kolekcji i wyświetlenie stron w siatce.

Kontrolki stron i scenorysy

Najprostszym sposobem pracy z kontrolkami stron w aplikacji platformy Xamarin.tvOS jest dodanie ich do interfejsu użytkownika aplikacji przy użyciu Projektant systemu iOS.

  1. W okienku rozwiązania kliknij Main.storyboard dwukrotnie plik i otwórz go do edycji.

  2. Przeciągnij kontrolkę strony z przybornika i upuść ją w widoku:

    Kontrolka strony

  3. Na karcieWidżet okienka właściwości można dostosować kilka właściwości kontrolki strony, takich jak bieżąca strona i liczba stron:

    Karta Widżet

  4. Następnie dodaj kontrolki lub gesty do widoku, aby przejść do tyłu i do przodu przez kolekcję stron.

  5. Na koniec przypisz nazwy do kontrolek, aby móc odpowiadać na nie w kodzie języka C#. Na przykład:

    Nadaj kontrolce nazwę

  6. Zapisz zmiany.

Ważne

Chociaż istnieje możliwość przypisania zdarzeń, takich jak TouchUpInside do elementu interfejsu użytkownika (takiego jak UIButton) w Projektant systemu iOS, nigdy nie będzie wywoływana, ponieważ urządzenie Apple TV nie ma ekranu dotykowego ani nie obsługuje zdarzeń dotykowych. Zdarzenie należy zawsze używać Primary Action podczas tworzenia procedur obsługi zdarzeń dla elementów interfejsu użytkownika systemu tvOS.

Edytuj plik Kontrolera widoku (przykład ViewController.cs) i dodaj kod, aby obsłużyć zmiany stron. Na przykład:

using System;
using Foundation;
using UIKit;

namespace MySingleView
{
    public partial class ViewController : UIViewController
    {
        #region Computed Properties
        public nint PageNumber { get; set; } = 0;
        #endregion

        #region Constructors
        public ViewController (IntPtr handle) : base (handle)
        {
        }
        #endregion

        #region Override Methods
        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            // Initialize
            PageView.Pages = 6;
            ShowCat ();
        }

        public override void DidReceiveMemoryWarning ()
        {
            base.DidReceiveMemoryWarning ();
            // Release any cached data, images, etc that aren't in use.
        }
        #endregion

        #region Custom Actions
        partial void NextCat (UIBarButtonItem sender) {

            // Display next Cat
            if (++PageNumber > 5) {
                PageNumber = 5;
            }
            ShowCat();

        }

        partial void PreviousCat (UIBarButtonItem sender) {
            // Display previous cat
            if (--PageNumber < 0) {
                PageNumber = 0;
            }
            ShowCat();
        }
        #endregion

        #region Private Methods
        private void ShowCat() {

            // Adjust UI
            PreviousButton.Enabled = (PageNumber > 0);
            NextButton.Enabled = (PageNumber < 5);
            PageView.CurrentPage = PageNumber;

            // Display new cat
            CatView.Image = UIImage.FromFile(string.Format("Cat{0:00}.jpg",PageNumber+1));
        }
        #endregion
    }
}

Przyjrzyjmy się bliżej dwóm właściwościom kontrolki strony. Najpierw, aby określić maksymalną liczbę stron, użyj następującego polecenia:

PageView.Pages = 6;

Aby zmienić bieżący numer strony, użyj następującego kodu:

PageView.CurrentPage = PageNumber;

Właściwość CurrentPage ma wartość zero (0), więc pierwsza strona będzie równa zero, a ostatnia będzie jedną minus maksymalną liczbę stron.

Aby uzyskać więcej informacji na temat pracy z scenorysami, zobacz przewodnik Szybki start dotyczący funkcji Hello, tvOS.

Podsumowanie

W tym artykule opisano projektowanie i pracę z kontrolką strony w aplikacji platformy Xamarin.tvOS.