WatchKit - Force Touch API 个问题

WatchKit - Force Touch API Questions

Force Touch 菜单的一些问题:

  1. 现在,当我执行 Force Touch 并按下我的菜单项之一时,整个 InterfaceController(实现我的菜单的地方)正在加载新的。 这是可以避免的吗?

  2. 我已经为我的 InterfaceController 实现了一个包含 4 个菜单项的菜单。

使用此菜单项之一,我想 enable/disable 我的按钮的触觉反馈。

我的按钮方法是这样的:

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

如果用户在 ForceTouchMenu 中禁用了 TapticEngine,我该如何禁用它?

  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. 不,这也不可能。