菜單也是WatchOS中一個重要的交互方式,限於Watch的屏幕尺寸,若將全部用戶交互控件都緊密的排列進展現的UI中,那樣不免會使用戶操做困難,也會影響界面佈局的簡潔美觀。所以,WatchOS的菜單機制是一層覆蓋在屏幕上的交互界面,有以下的特色:app
一、菜單是內置於InterfaceController中的,不需顯式處理,只需對齊菜單項進行添加設置。ide
二、菜單最多能夠容乃四個選項按鈕。oop
三、經過重按能夠呼出和隱藏菜單。佈局
在storyBoard中,咱們能夠將一個菜單控件拖入到interfaceController中:spa
在Menu中能夠添加一些item,每一個item均可以設置圖片和文字:code
圖片的設置分爲,自定義和系統兩種,咱們可使用本身的圖片做爲菜單的圖片,也可使用系統爲咱們提供的一些圖片,系統的圖片參數是一個枚舉,值以下:圖片
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 }
這些枚舉中提供了一些咱們經常使用的功能圖標。ci
菜單按鈕的觸發方法,咱們能夠經過拖拽Action的方式來添加,在Xcode7的模擬器中,咱們使用command+shift+2能夠切換到重按模式,模擬器效果以下:開發
前面提到過,菜單是內含於InterfaceController中的一個控件,在Interface中咱們能夠調用一些方法來添加菜單按鈕,相關方法以下:it
//添加一個菜單按鈕,圖片自定義 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()
示例代碼以下:
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(){ }
專一技術,熱愛生活,交流技術,也作朋友。
——琿少 QQ羣:203317592