gpt4 book ai didi

swift - 如何获取 WKInterfaceButton 的触摸事件

转载 作者:搜寻专家 更新时间:2023-11-01 06:55:19 24 4
gpt4 key购买 nike

enter image description here

我有一个 WKInterfaceButton,用于增加用户选择的权重值。但是默认行为是每次用户按下按钮时数量增加一个,我想达到这样的效果,只要用户按住按钮,数量就应该增加,当用户抬起手指时数量的最终值应该分配给权重。

触摸事件在 watchOS 上似乎不可用。我寻找 WKGestureRecognizer,但只有四个可用,其中没有一个能满足我的目的。我怎样才能实现这种行为?

最佳答案

这听起来很傻,但您可以使用 WKLongPressGestureRecognizer 来做到这一点。在界面生成器中添加一个 WKLongPressGestureRecognizer 例如到 WKInterfaceImage。将 WKLongPressGestureRecognizer 的 Min Duration 设置为 0,如下面的屏幕截图所示。

enter image description here

现在将操作连接到 InterfaceController 中的操作。我正在使用计时器来触发增量,但您也可以使用 perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval) 和一个标志(按下按钮)来执行此操作。

考虑到移动也会被检测到,但这不会影响所需的功能。

var gestureTimer:Timer?

@IBAction func gesture(_ sender: WKLongPressGestureRecognizer) {

switch sender.state {
case .began:
print("began")
gestureTimer = Timer.scheduledTimer(withTimeInterval: 0.2, repeats: true, block: { (timer) in
print("do something")
})

case .cancelled, .ended:
print("other")
if let timer = gestureTimer {
timer.invalidate()
gestureTimer = nil
}
default:
print("default")
}
}

关于swift - 如何获取 WKInterfaceButton 的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53862782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com