鍍金池/ 教程/ iOS/ 上下文菜單
上下文菜單
更新記錄
文本與標簽
使用 iOS 技術
開發(fā)您的 Watch 應用
Watch 應用結構
預覽概要
界面對象
UI 概要
Tables
配置 Xcode 項目
圖片
通知要點
設置
界面導航
管理你的預覽界面
管理自定義 Long Look 界面

上下文菜單

Apple Watch 上 Retina 屏的 Force Touch 提供了一種新的與內容交互的方式。與點擊屏幕上的項目不同,該特性需要一定的壓力才能激活與當前界面控制器相關的上下文菜單(如果有的話)。上下文菜單是可選擇的。您用上下文菜單顯示與當前屏幕相關的操作。WatchKit 在內容之上顯示菜單,如圖 11-1。

圖 11-1 一個包含三個項目的上下文菜單

http://wiki.jikexueyuan.com/project/apple-watch-programming-guide/images/context_menu_2x.png" alt="" />

上下文菜單可以顯示多達 4 個動作(action)。每個動作由一個標題和一張圖片表示。點擊某個動作的圖片會關閉菜單并執(zhí)行相應的方法。點擊屏幕上其他的地方只能關閉菜單。

設計菜單項

每個菜單項包含一個可點擊區(qū)域和一個標題??牲c擊區(qū)域包括圓形背景,頂部是您所提供的圖片。這張圖片必須是模板圖片,其 alpha 通道決定了繪制在背景頂部的形狀。圖片的不透明部分顯示為黑色,全部或者部分半透明可透出背景顏色。

您所提供的模板圖片應當比它們所在的圓形背景要小一點。關于菜單圖片的尺寸和創(chuàng)建圖片指南的更多信息,請參考 Apple Watch Human Interface Guidelines。

為界面控制器添加上下文菜單

您可以在設計時配置界面控制器的上下文菜單,但是也可以在運行時添加和移除菜單項。在設計時,編輯 storyboard 包括您想在指定的界面控制器上顯示的菜單項。當之后初始化界面控制器的時候,您可以添加菜單項來補充在 storyboard 中所創(chuàng)建的。通過代碼創(chuàng)建的菜單項也可以刪除。不管您是在 storyboard 中拖入菜單項還是通過代碼添加,菜單中的菜單項不能超過 4 個。

在界面控制器中添加上下文菜單

  1. 打開 storyboard 文件。
  2. 從工具庫(library)中拖拽一個菜單對象并添加到界面控制器場景中。
    最初的菜單包含一個單獨的菜單項。
  3. 最多從工具庫中拖拽 3 個菜單項到菜單中。
    您也可以用菜單的屬性檢查器(Attributes inspector)來設置菜單項的數量。您所添加的菜單項不能通過編程刪除。
  4. 對于每一個菜單項,用屬性檢查器(Attributes inspector)指定菜單的標題和圖片。兩者都是需要的。
  5. 在界面控制器類中將每個菜單項與操作方法連接起來。
    菜單的操作(action) 方法有以下格式:
    - (IBAction)doMenuItemAction
  6. 保存storyboard文件。

想要在運行時添加菜單項,調用界面控制器對象的 addMenuItemWithImage:title:action: 或者 addMenuItemWithImageNamed:title:action: 方法。您指定的菜單項被附加到 storyboard 文件的菜單中。通過編程方式一直附屬于菜單直到你明確移除它們或者界面控制器被銷毀。

處理菜單項的點擊

當用戶點擊菜單項時,WatchKit 關閉菜單并調用相關的動作方法。您可以在界面控制器中通過下面的語法來定義動作方法:

// SWIFT
@IBAction func doMenuAction() {
    // Handle menu action.
}
// OBJECTIVE-C
- (IBAction)doMenuItemAction {
    // Handle menu action.
}

如果要求使用任何狀態(tài)信息來執(zhí)行操作,那您需要在界面控制器中存儲并保持這些信息。舉個例子來說,如果一個動作依賴于表的當前選中行,您的界面控制器必須包含一個變量來跟蹤當前選中行。如果您需要用戶點擊菜單動作之后的更多信息,那動作方法必須顯示一個模態(tài)界面控制器。

上一篇:文本與標簽下一篇:圖片