Apple Watch (WatchKit) push-действие

Я разрабатываю приложение для Apple Watch и хотел бы использовать действие, демонстрируемое при запуске, когда пользователь нажимает на экран (а не касание). Вы знаете, как это называется и как я могу получить к нему доступ?


person Tom Coomer    schedule 26.11.2014    source источник


Ответы (3)


Вы можете показать меню только для этого действия. Вы используете методы addMenuItem в WKInterfaceController.

person Stephen Johnson    schedule 26.11.2014

Жест, о котором вы говорите, называется Принудительное касание.

Можно использовать Force Touch в качестве метода ввода в сторонних приложениях. Однако вы не можете зарегистрироваться для получения уведомлений о событиях Force Touch; в настоящее время в WatchKit нет ничего эквивалентного UIGestureRecogniser.

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

Чтобы использовать это через Interface Builder, вы просто:

  1. Перетащите меню в соответствующую сцену приложения Watch в конструкторе интерфейса.
  2. Добавьте от одного до четырех пунктов меню в меню, перетащив их в меню.
  3. Установите имена и изображения для этих пунктов меню.
  4. Подключите эти пункты меню к IBActions в вашем расширении WatchKit.

Кроме того, вы можете программно устанавливать и очищать элементы меню из своего расширения WatchKit, как изложено в документации WatchKit API. Существует четыре соответствующих метода WKInterfaceController. В Свифте:

func addMenuItemWithItemIcon(_ itemIcon: WKMenuItemIcon,
                   title title: String,
                  action action: Selector)

func addMenuItemWithImageNamed(_ imageName: String,
                     title title: String,
                    action action: Selector)

func addMenuItemWithImage(_ image: UIImage,
                title title: String,
               action action: Selector)

func clearAllMenuItems()

В цели-C:

- (void)addMenuItemWithItemIcon:(WKMenuItemIcon)itemIcon
                      title:(NSString *)title
                     action:(SEL)action

- (void)addMenuItemWithImageNamed:(NSString *)imageName
                        title:(NSString *)title
                       action:(SEL)action

- (void)addMenuItemWithImage:(UIImage *)image
                   title:(NSString *)title
                  action:(SEL)action

- (void)clearAllMenuItems

Полная информация содержится в документации по API для Настройка контекстного меню в WatchKit.

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

person Duncan Babbage    schedule 12.01.2015
comment
И как указать разные изображения для 38 мм и 42 мм? - person frankish; 13.08.2015

это называется контекстным меню. вы можете сделать это с помощью addMenuItem или в раскадровках вы добавляете меню, которое идет с элементом, а затем добавляете дополнительные элементы.

person Paul Yorke    schedule 12.12.2014