swift3 - 如何在WatchKit 3中模拟一个whilePressing TouchEvent?

标签 swift3 watchkit apple-watch watchos-3

我想要什么:

我希望在按下按钮时进度条填充至 100%。例如:按下按钮,进度条仅在按下时持续填充,直到 2 秒过去,并且 2 秒后进度条达到 100%。

我做了什么:

我尝试使用长按手势识别器和点击手势识别器来模拟 whilePressing TouchEvent,但没有得到令人满意的结果。主要问题是,我无法在同一按钮上混合点击手势和长按手势。如果我能做到这一点,我至少可以获取 touchDown(点击)和 touchUp(长按)事件,并尝试用它来模拟我想要的行为。

有人有建议吗?或者当前给定的框架根本不可能实现?

最佳答案

找到了一个令人满意的解决方法。我将 WKLongPresssGestureRecognizer 与我的按钮一起使用,该按钮应该具有所需的交互。我已将属性检查器中的Min Duration 设置为0。并使用以下代码片段作为我的识别器的 IBAction:

@IBAction func pressAndHold(_ sender: AnyObject) {
    guard let sender = sender as? WKLongPressGestureRecognizer else {
        return
    }
    if sender.state == WKGestureRecognizerState.began {
        print("Touch down")
    } else if sender.state == WKGestureRecognizerState.ended {
        print("Touch up")
    }
}

关于swift3 - 如何在WatchKit 3中模拟一个whilePressing TouchEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40044279/

相关文章:

swift - WatchOS 从 Activity 应用获取信息

json - 在 Swift 3 中使用 Alamofire 的 CoreData

ios - 当我使用 pod 将 dropbox 与 pod 集成时,出现错误,因为 SFSafariViewController 没有使用 Swift 3 的成员函数

ios - Swift 中不调用协议(protocol)委托(delegate)方法

ios - 在 Watch App 中创建进度圈作为 WKInterfaceImage

ios - 嵌入式二进制验证实用程序错误

scroll - WatchOS 在 WKInterfaceTable 中滚动时对齐到下一行

ios - iPhone 和 Apple Watch 应用程序之间的核心数据共享

ios - WKInterfaceTable向上滚动刷新

ios - 如何使用 CoreData 信息对 UITableView 进行排序