Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Руководство по программированию часов Apple

PDF
На этой странице

Контекстные меню

Дисплей Сетчатки с Касанием Силы, найденным на Часах Apple, обеспечивает новый способ взаимодействовать с содержанием. Вместо того, чтобы просто коснуться элементов на экране, нажимая экран с мелкой суммой силы активирует контекстное меню (если таковые имеются) связанный с текущим контроллером интерфейса. Контекстные меню являются дополнительными. Вы используете их для отображения действий, связанных с текущим экраном. WatchKit выводит на экран меню по Вашему содержанию, как показано на рисунке 11-1.

Изобразите 11-1A контекстное меню с тремя элементами image: ../Art/context_menu_2x.png

Контекстное меню может вывести на экран до четырех действий. Каждое действие представлено строкой заголовка и изображением. Ответвление изображения действия отклоняет меню и выполняет метод действия, связанный с тем пунктом меню. Ответвление где-либо еще отклоняет меню без дальнейшего действия.

Разработка Ваших пунктов меню

Каждый пункт меню состоит из tappable области и заголовка. tappable область содержит круговой фон, поверх которого находится изображение, которое Вы обеспечиваете. Изображение должно быть шаблонным изображением, где альфа-канал определяет форму для рисования поверх фона. Непрозрачные части изображения появляются, поскольку черные, и полностью или частично прозрачные части позволяют цвету фона показать через.

Шаблонные изображения, которые Вы обеспечиваете, должны быть меньшими, чем круговой фон, на котором они находятся. Для получения дополнительной информации о размере изображений меню и инструкций для того, как создать их, см. Инструкции по Интерфейсу пользователя Часов Apple.

Добавление контекстного меню к контроллеру интерфейса

Вы конфигурируете контекстное меню контроллера интерфейса во время проектирования, но можно также добавить и удалить пункты меню во время выполнения. Во время проектирования отредактируйте свою раскадровку для включения пунктов меню, что Вы всегда хотите присутствовать в меню для данного контроллера интерфейса. При инициализации контроллера интерфейса позже можно добавить пункты меню для дополнения тех, Вы создали в своей раскадровке. Пункты меню, которые Вы добавляете программно, могут также быть удалены. Общее количество пунктов меню в меню не может превысить четыре, независимо от того, включали ли Вы их в свою раскадровку или добавили их программно.

Добавить контекстное меню к контроллеру интерфейса
  1. Откройте свой файл раскадровки.

  2. Перетащите объект меню из библиотеки и добавьте его к своей сцене контроллера интерфейса.

    Исходное меню содержит единственный пункт меню.

  3. Перетащите еще до трех элементов от библиотеки до Вашего меню.

    Можно также использовать инспектора Атрибутов меню для определения номера элементов. Элементы, которые Вы добавляете, не могут быть удалены программно позже.

  4. Для каждого элемента используйте инспектора Атрибутов для указания заголовка и изображения меню. Оба требуются.

  5. Подключите каждый пункт меню к методу действия в Вашем классе контроллера интерфейса.

    Методы действия меню имеют следующий формат:

    • - (IBAction)doMenuItemAction
  6. Сохраните свой файл раскадровки.

Для добавления пунктов меню во время выполнения вызовите addMenuItemWithImage:title:action: или addMenuItemWithImageNamed:title:action: метод Вашего объекта контроллера интерфейса. Элементы, которые Вы указываете, добавляются к тем в Вашем файле раскадровки. Элементы, добавленные программно, остаются присоединенными к меню, пока Вы явно не удаляете их или пока не освобожден Ваш контроллер интерфейса.

Обработка касаний в пункте меню

Когда пользователь касается пункта меню, WatchKit отклоняет меню и вызывает связанный метод действия. Вы определяете методы действия в своем контроллере интерфейса с помощью следующего синтаксиса:

Swift

  • @IBAction func doMenuAction() {
  • // Handle menu action.
  • }

Objective C

  • - (IBAction)doMenuItemAction {
  • // Handle menu action.
  • }

Если информация состояния требуется, чтобы выполнять действие, это - Ваша ответственность сохранить и поддержать ту информацию в Вашем объекте контроллера интерфейса. Например, если действие полагается на в настоящее время выбираемую строку таблицы, Ваш контроллер интерфейса должен включать переменную для отслеживания последний раз выбранной строки. И, если Вы хотите запросить больше информации от пользователя после ответвления действия меню, Ваш метод действия должен представить модальный контроллер интерфейса.