AppleWatch开发入门五——菜单控件的使用

简介:

AppleWatch开发入门五——菜单控件的使用

一、简介

        菜单也是WatchOS中一个重要的交互方式,限于Watch的屏幕尺寸,若将所有用户交互控件都紧密的排列进展示的UI中,那样难免会使用户操作困难,也会影响界面布局的简洁美观。因此,WatchOS的菜单机制是一层覆盖在屏幕上的交互界面,有如下的特点:

1、菜单是内置于InterfaceController中的,不需显式处理,只需对齐菜单项进行添加设置。

2、菜单最多可以容乃四个选项按钮。

3、通过重按可以呼出和隐藏菜单。

二、创建菜单的两种方式

1、通过storyBoard创建

        在storyBoard中,我们可以将一个菜单控件拖入到interfaceController中:

142755_E8SV_2340880.png

在Menu中可以添加一些item,每个item都可以设置图片和文字:

142904_vpCS_2340880.png

图片的设置分为,自定义和系统两种,我们可以使用自己的图片作为菜单的图片,也可以使用系统为我们提供的一些图片,系统的图片参数是一个枚举,值如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public  enum  WKMenuItemIcon : Int {
     
     case  Accept  // checkmark
     case  Add  // '+'
     case  Block  // circle w/ slash
     case  Decline  // 'x'
     case  Info  // 'i'
     case  Maybe  // '?'
     case  More  // '...'
     case  Mute  // speaker w/ slash
     case  Pause  // pause button
     case  Play  // play button
     case  Repeat  // looping arrows
     case  Resume  // circular arrow
     case  Share  // share icon
     case  Shuffle  // swapped arrows
     case  Speaker  // speaker icon
     case  Trash  // trash icon
}

这些枚举中提供了一些我们常用的功能图标。

菜单按钮的触发方法,我们可以通过拖拽Action的方式来添加,在Xcode7的模拟器中,我们使用command+shift+2可以切换到重按模式,模拟器效果如下:

144535_msxf_2340880.png

2、通过代码来添加菜单选项

        前面提到过,菜单是内含于InterfaceController中的一个控件,在Interface中我们可以调用一些方法来添加菜单按钮,相关方法如下:

?
1
2
3
4
5
6
7
     //添加一个菜单按钮,图片自定义
     public  func addMenuItemWithImage(image: UIImage, title: String, action: Selector)
     public  func addMenuItemWithImageNamed(imageName: String, title: String, action: Selector)
     //添加一个系统图片的按钮
     public  func addMenuItemWithItemIcon(itemIcon: WKMenuItemIcon, title: String, action: Selector)
     //清除所有按钮
     public  func clearAllMenuItems()

示例代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
override func awakeWithContext(context: AnyObject?) {
         super.awakeWithContext(context)
       
         self.addMenuItemWithItemIcon(WKMenuItemIcon.Share, title:  "分享" , action:Selector( "share" ))
         self.addMenuItemWithItemIcon(WKMenuItemIcon.Decline, title:  "取消" , action: Selector( "cancle" ))
         self.addMenuItemWithItemIcon(WKMenuItemIcon.Add, title:  "添加" , action:Selector( "add" ))
     }
 
     func share(){
         print( "分享" )
     }
     func add(){
         print( "add" )
     }
     func cancle(){
         
     }

目录
相关文章
|
C# 索引 Windows
Winform控件优化之TabControl控件的使用和常用功能
TabControl是一个分页切换(tab)控件,不同的页框内可以呈现不同的内容,将主要介绍调整tab的左右侧显示、设置多行tab、禁用或删除tabpage、隐藏TabControl头部的选项卡等
3737 0
Winform控件优化之TabControl控件的使用和常用功能
|
11月前
零基础VB教程063期:如何用代码直接创建控件?从此不必拖控件了
零基础VB教程063期:如何用代码直接创建控件?从此不必拖控件了
248 0
AppleWatch开发入门五——菜单控件的使用
AppleWatch开发入门五——菜单控件的使用
173 0
AppleWatch开发入门五——菜单控件的使用
|
开发工具 C语言
Qt编写自定义控件31-面板仪表盘控件
一、前言 在Qt自定义控件中,仪表盘控件是数量最多的,写仪表盘都写到快要吐血,可能是因为各种工业控制领域用的比较多吧,而且仪表盘又是比较生动直观的,这次看到百度的echart中有这个控件,所以也来模仿做了一个,其实掌握了一两个仪表盘的绘制方法以后,其他仪表盘的绘制都是如鱼得水,基本上变化很小。
1230 1
|
开发工具 C语言
Qt编写自定义控件9-导航按钮控件
一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2属性,配合QPainter这个无敌大法工具,没有什么不能绘制的。
1223 0
一个控件几行代码实现换肤(可支持菜单)
这是从vbAccelerator(http://vbaccelerator.com)的皮肤程序修改而来,把DLL方式修改为OCX,并且修改为仅通过几行指令,即可完成皮肤加载。
487 0
|
Web App开发 搜索推荐 C#
用WPF窗体打造个性化界面的图片浏览器
原文:用WPF窗体打造个性化界面的图片浏览器 本文使用WPF窗体(XAML及C#)与Win Form控件(FolderBrowserDialog)结合的方式, 演示制作了一个简易漂亮的WPF图片浏览器。
802 0
|
数据安全/隐私保护
|
供应链 数据可视化 UED
|
Web App开发 JavaScript 前端开发