在 Xamarin 中使用 tvOS 导航栏
导航栏可以添加到视图顶部,以显示标题和可选的导航栏按钮。 当用户从主页(如表视图、集合或菜单)导航到显示所选项详细信息的子视图时,通常会使用这些按钮。
除了标题(显示在中心)外,导航栏还可以在栏的左侧和右侧包含一个或多个导航栏按钮 (UIBarButtonItem
)。
重要
默认情况下,导航栏是完全透明的。 应注意确保导航栏的内容比其下面的内容更具可读性。 例如,当表视图或集合中的内容滚动到其下方时。
导航栏和情节提要
在 Xamarin.tvOS 应用中使用导航栏的最简单方法是使用 iOS 设计器将其添加到应用的 UI。
重要
虽然可以在 iOS 设计器中为 UI 元素(如 UIButton)分配 TouchUpInside
等事件,但永远不会调用它,因为 Apple TV 没有触摸屏,也不支持触摸事件。 创建 tvOS 用户界面元素的事件处理程序时,应始终使用 Primary Action
事件。
以下代码提供了有关三个不同的 BarButtonItems 上的事件处理程序示例:ShowFirstHotel
、ShowSecondHotel
和 ShowThirdHotel
。 单击每个项时,背景图像 HotelImage
将更改。 这是在视图控制器(示例 ViewController.cs
)文件中编辑的:
using System;
using Foundation;
using UIKit;
namespace MySingleView
{
public partial class ViewController : UIViewController
{
#region Constructors
public ViewController (IntPtr handle) : base (handle)
{
}
#endregion
#region Override Methods
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
}
public override void DidReceiveMemoryWarning ()
{
base.DidReceiveMemoryWarning ();
// Release any cached data, images, etc that aren't in use.
}
#endregion
#region Custom Actions
partial void ShowFirstHotel (UIBarButtonItem sender) {
// Change background image
HotelImage.Image = UIImage.FromFile("Motel01.jpg");
}
partial void ShowSecondHotel (UIBarButtonItem sender) {
// Change background image
HotelImage.Image = UIImage.FromFile("Motel02.jpg");
}
partial void ShowThirdHotel (UIBarButtonItem sender) {
// Change background image
HotelImage.Image = UIImage.FromFile("Motel03.jpg");
}
#endregion
}
}
只要按钮的 Enabled
属性为 true
,并且未被其他控件或视图覆盖,就可以使用 Siri Remote 将其设为焦点项。
有关使用情节提要的详细信息,请参阅你好,tvOS 快速入门指南。
总结
本文介绍了如何设计和使用 Xamarin.tvOS 应用中的导航栏。