WatchKit - Force Touch API Вопросы
Некоторые вопросы к меню Force Touch:
Теперь, когда я выполняю Force Touch и нажимаю один из пунктов моего меню, весь InterfaceController, в котором реализовано мое меню, загружается новым. Это можно избежать?
Я реализовал меню с 4 элементами меню для моего InterfaceController.
С помощью одного из этих пунктов меню я хочу включить / отключить тактильную обратную связь моих кнопок.
Мои методы кнопок такие:
- (IBAction) but1Pressed {
[[WKInterfaceDevice currentDevice] playHaptic:WKHapticType.Click];
// Do something
}
Как отключить TapticEngine, если пользователь отключил его с помощью ForceTouchMenu?
1 ответ
Нет, так как сегодня это невозможно.
Если я вас правильно понимаю, вам нужен
BOOL
который определяет, должно ли приложение выполнять тактильную обратную связь при нажатии кнопки в вашем контроллере интерфейса.
Чтобы понять это, выполните следующее:
BOOL shouldGiveTapticFeedback = YES
Тогда вам нужен метод, чтобы изменить это BOOL
когда нажимается соответствующий пункт меню:
- (IBAction) tapticFeedbackChangeButtonPressed {
//change BOOL value
shouldGiveTapticFeedback = !shouldGiveTapticFeedback
}
Наконец, вам нужно проверить, должна ли воспроизводиться обратная связь, когда нажимается кнопка в вашем контроллере интерфейса:
- (IBAction) interfaceButtonPressed {
if(shouldGiveTapticFeedback) {
//play sound
[[WKInterfaceDevice currentDevice] playHaptic:WKHapticType.Click];
}
}
- Нет, это тоже невозможно.