原文:WatchKit Programming Guide:Watch Apps--Context Menus
Apple Watch上Retina屏的Force Touch特性提供了与内容进行交互的新途径。与点击屏幕上的项目不同,该特性并非轻触,而是需要一定的按压力度才能激活与当前界面控制器相关的情景菜单。
情景菜单是可选的。使用情景菜单来展示当前屏幕相关的操作,图11-1展示不同数量操作下的情景菜单。
情景菜单可以展示4项操作。每个操作由一个标题和一张图片表示。点击屏幕上某张图片可执行对应的操作,点击屏幕上任何其他地方即可解除菜单。
设计菜单项
每个菜单项包含一个可点击区域和一个标题。可点击区域由纯色背景和您提供的图片组成。图片必须是模板图片,其alpha通道指定了绘制在纯色背景
上的图形。模板图片的不透明部分在背景上显示为黑色,全部或者部分半透明部分可透露出背景的颜色。
图11-2展示了菜单项目的图片和标题的布局。您提供的模板图片实际上应当比背景小一点。更多关于图片尺寸的信息和如何创建图片的指南,请参看Apple Watch Human Interface Guidelines.
图11-2 菜单项目布局
为界面控制器添加情景菜单
你可以以编程方式或者在设计阶段配置情景菜单。您添加到storyboard中的菜单项是持久性的不能在运行时移除。您通过编程方式添加的菜单项可以被移除。使用WKInterfaceController类的方法来添加或者移除新的菜单项。
重要:情景菜单中的菜单项目总数不能超过4个,不管是在storyboard文件中定义还是以编程方式添加,或者组合两种方式。
向界面控制器中添加情景菜单需要:
1.打开storyboard文件。
2.从工具库中拖拽一个菜单项,并将其添加到界面控制器场景中。初始菜单包含一个单独的菜单项目。
3.最多从库中拖拽3个菜单项到菜单中。你还可以使用菜单的Attributes检查器来设置菜单项数量,您添加的菜单项不能被移除。
4.对于每个菜单项目,可使用Attributes检查器来指定菜单的标题和图片,这两者都是需要的。
5.在界面控制器类中将每个菜单项和操作连接起来。菜单操作方法格式如下:
- (IBAction)doMenuItemAction
想要在运行时添加菜单项目,请调用界面控制器对象的addMenuItemWithImage:title:action:或者addMenuItemWithImageNamed:title:action:方法。您添加的菜单项被附加到storyboard文件中指定的对象上。以编程方式添加的菜单项目持续附属于菜单,直到您明确地移除它们或者您的界面控制器解除配置。
当用户点击菜单项目时,WatchKit则调用界面控制器中定义的关联动作方法。通过动作方法的实现来执行用户请求的操作。如果要求使用任何状态信息来执行操作,那么您需要在界面控制器中保持所需状态。比如,如果一个动作依赖于表格中当前的选中行,那么您的界面控制器必须包含一个变量来跟踪当前选中的行。
原创文章,作者:ioued,如若转载,请注明出处:https://www.iamue.com/6245/