有没有办法检测用户是单击触控板的右侧还是左侧

  • 本文关键字:单击 有没有 用户 objective-c tvos
  • 更新时间 :
  • 英文 :


鉴于触摸总是从 0,0 开始,我找不到一种简单的方法来检测触摸在触控板上的确切位置。

检测实际点击的位置可能并不像看起来那么容易,甚至不可能。在这里,区分点击和点击很重要。轻点用于选择信息,点击用于确认,如 Apple 人机界面指南中所述。出于这个原因,Apple没有提供一种简单的方法来区分点击的位置,而点击却存在这种方法。在此之后,我的第一个建议是重新考虑界面,并按预期使用点击和点击。我确实认识到,在很多情况下,这是不可能的。

新的遥控器有一个触摸表面,下面有一个物理按钮。

物理按钮单击和点击由 UIPress 类表示,并在设置allowedPressTypes时由手势识别器识别。物理按钮单击的按类型为 UIPressTypeSelect

由于UIPressTypeSelect不会区分实际触控板上的位置,并且它创建的事件返回实际屏幕上UIWindow的位置,因此此处需要事件组合才能完成任务。

使用以下方法检测压力机何时开始。然后查找该类型的UIPress

UIPressTypeUpArrow
UIPressTypeDownArrow
UIPressTypeLeftArrow
UIPressTypeRightArrow

这将表示触摸。这后面应该有另一个类型 UIPressTypeSelectUIPress事件。这将指示用户单击了他们最初触摸的位置。

- (void)pressesBegan:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {  
    for (UIPress *item in presses) {
    }
}

这不是一个完美的解决方案,可能值得向Apple提交错误报告并请求该功能。

对遥控器进行更精细控制的另一种选择是使用 GCController ,但这可能会使事情复杂化,而且看起来它超出了这个问题的范围。

相关内容

  • 没有找到相关文章

最新更新