Práce s ovládacími prvky stránky tvOS v Xamarinu
Někdy může být potřeba zobrazit řadu stránek nebo obrázků v aplikaci Xamarin.tvOS. Ovládací prvek stránky byl navržen tak, aby jasně ukázal, na které stránce je uživatel mimo maximální počet stránek. Ovládací prvek stránky zobrazí řadu teček na tmavém oválovém pozadí. Aktuální stránka zobrazí vyplněnou tečku, všechny ostatní stránky se zobrazí jako prázdné tečky. Ovládací prvek Stránka vystřihne vnější tečky, pokud je v jeho oblasti pozadí příliš mnoho.
Ovládací prvek stránky v neinteraktivním prvku navržený tak, aby poskytl zpětnou vazbu jenom uživateli. Pokud chcete změnit aktuální číslo stránky (například gesta nebo tlačítka), budete muset přidat další ovládací prvky.
Apple má při použití ovládacího prvku stránky následující návrhy:
- Používejte pouze v úplných kolekcích – Ovládací prvky stránky fungují nejlépe v prostředí na celé obrazovce a zobrazují více stránek, které existují v jedné kolekci.
- Omezit počet stránek – Ovládací prvky stránek fungují nejlépe pro deset (10) nebo méně stránek a maximálně dvacet (20) stránek. U více než dvaceti stránek zvažte použití zobrazení kolekce a zobrazení stránek v mřížce.
Ovládací prvky stránky a scénáře
Nejjednodušší způsob, jak pracovat s ovládacími prvky stránky 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 ovládací prvek stránky ze sady nástrojů a přetáhněte ho do zobrazení:
Na kartě Widget v oblasti Vlastností můžete upravit několik vlastností ovládacího prvku stránky, jako je jeho aktuální stránka a počet stránek:
V dalším kroku přidejte ovládací prvky nebo gesta do zobrazení, abyste se mohli pohybovat vzad a vpřed v kolekci stránek.
Nakonec k ovládacím prvkům přiřaďte názvy , abyste na ně mohli reagovat v kódu jazyka C#. Příklad:
Uložte provedené změny.
Důležité
I když je možné přiřadit události, jako TouchUpInside
je prvek uživatelského rozhraní (například UIButton) v iOS Designeru, nebude nikdy volána, protože Apple TV nemá dotykovou obrazovku ani nepodporuje dotykové události. Událost byste měli vždy použít Primary Action
při vytváření obslužných rutin událostí pro prvky uživatelského rozhraní tvOS.
Upravte soubor Kontroleru zobrazení (příklad ViewController.cs
) a přidejte kód pro zpracování změně stránek. Příklad:
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
}
}
Pojďme se podrobněji podívat na dvě vlastnosti ovládacího prvku Stránky. Nejprve k určení maximálního počtu stránek použijte následující:
PageView.Pages = 6;
Pokud chcete změnit číslo aktuální stránky, použijte následující kód:
PageView.CurrentPage = PageNumber;
Vlastnost CurrentPage
je založená na nule (0), takže první stránka bude nula a poslední bude jedna minus maximální počet stránek.
Další informace o práci se storyboardy najdete v naší úvodní příručce Hello, tvOS.
Shrnutí
Tento článek popisuje návrh a práci s ovládacími prvky stránky v aplikaci Xamarin.tvOS.