在 Xamarin 中使用 tvOS 頁面控件
有時候您可能需要在 Xamarin.tvOS 應用程式中顯示一系列頁面或影像。 頁面控件的設計目的是要清楚顯示使用者所在的頁面數目上限。 頁面控件會針對深色橢圓形背景顯示一系列點。 目前的頁面會顯示填滿的點,所有其他頁面都會顯示為空心點。 如果背景區域太多,頁面控件會裁剪最外層的點數。
非互動式元素中的頁面控件,其設計目的是只提供意見反應給使用者。 您必須新增其他控制項來變更目前的頁碼(例如手勢或按鈕)。
使用頁面控件時,Apple 有下列建議:
- 僅適用於 完整集合 - 頁面控件在全螢幕環境中最適合用來顯示存在於單一集合中的多個頁面。
- 限制頁 數 - 頁面控件最適合十頁(10 頁)或更少的頁面,最多 20 頁(20 頁)。 對於 20 個以上的頁面,請考慮使用 集合檢視 ,並在方格中顯示頁面。
頁面控件和分鏡腳本
在 Xamarin.tvOS 應用程式中使用頁面控件最簡單的方式,就是使用 iOS 設計工具將它們新增至應用程式的 UI。
重要
雖然可以指派 iOS 設計工具中的 UI 元素(例如 UIButton)之類的 TouchUpInside
事件,但永遠不會呼叫它,因為 Apple TV 沒有觸摸屏或支援觸控事件。 建立tvOS使用者介面元素的事件處理程式時,您應該一律使用 Primary Action
事件。
編輯您的檢視控制器 (範例 ViewController.cs
) 檔案,並新增程式代碼來處理正在變更的頁面。 例如:
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
}
}
讓我們進一步了解頁面控件的兩個屬性。 首先,若要指定頁數上限,請使用下列專案:
PageView.Pages = 6;
若要變更目前的頁碼,請使用下列程式代碼:
PageView.CurrentPage = PageNumber;
屬性 CurrentPage
是以零 (0) 為基礎,因此第一頁會是零,最後一頁會減去頁數上限。
如需使用分鏡腳本的詳細資訊,請參閱我們的 Hello, tvOS 快速入門指南。
摘要
本文涵蓋在 Xamarin.tvOS 應用程式內設計和使用頁面控件。