AppleWatch開發入門五——菜單控件的使用

AppleWatch開發入門五——菜單控件的使用

1、簡介

        菜單也是WatchOS中一個重要的交互方式,限於Watch的屏幕尺寸,若將全部用戶交互控件都緊密的排列進展現的UI中,那樣不免會使用戶操做困難,也會影響界面佈局的簡潔美觀。所以,WatchOS的菜單機制是一層覆蓋在屏幕上的交互界面,有以下的特色:app

一、菜單是內置於InterfaceController中的,不需顯式處理,只需對齊菜單項進行添加設置。ide

二、菜單最多能夠容乃四個選項按鈕。oop

三、經過重按能夠呼出和隱藏菜單。佈局

2、建立菜單的兩種方式

一、經過storyBoard建立

        在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

相關文章
相關標籤/搜索