WatchKit - Force Touch API Вопросы

Некоторые вопросы к меню Force Touch:

  1. Теперь, когда я выполняю Force Touch и нажимаю один из пунктов моего меню, весь InterfaceController, в котором реализовано мое меню, загружается новым. Это можно избежать?

  2. Я реализовал меню с 4 элементами меню для моего InterfaceController.

С помощью одного из этих пунктов меню я хочу включить / отключить тактильную обратную связь моих кнопок.

Мои методы кнопок такие:

- (IBAction) but1Pressed {
       [[WKInterfaceDevice currentDevice] playHaptic:WKHapticType.Click];
       // Do something
}

Как отключить TapticEngine, если пользователь отключил его с помощью ForceTouchMenu?

1 ответ

Решение
  1. Нет, так как сегодня это невозможно.

  2. Если я вас правильно понимаю, вам нужен BOOL который определяет, должно ли приложение выполнять тактильную обратную связь при нажатии кнопки в вашем контроллере интерфейса.

Чтобы понять это, выполните следующее:

BOOL shouldGiveTapticFeedback = YES

Тогда вам нужен метод, чтобы изменить это BOOL когда нажимается соответствующий пункт меню:

- (IBAction) tapticFeedbackChangeButtonPressed {

   //change BOOL value

   shouldGiveTapticFeedback = !shouldGiveTapticFeedback

}

Наконец, вам нужно проверить, должна ли воспроизводиться обратная связь, когда нажимается кнопка в вашем контроллере интерфейса:

- (IBAction) interfaceButtonPressed {

   if(shouldGiveTapticFeedback) {

      //play sound

      [[WKInterfaceDevice currentDevice] playHaptic:WKHapticType.Click];

   }
}
  1. Нет, это тоже невозможно.
Другие вопросы по тегам