【问题标题】:Detecting swipes on all four directions on WatchKit using the Storyboard使用 Storyboard 检测 WatchKit 上所有四个方向的滑动
【发布时间】:2017-02-23 01:38:55
【问题描述】:

我正在尝试检测 AppleWatch 在所有四个方向上的滑动。但是我不清楚如何为我在情节提要中插入的 WKSwipeGestureRecognizer 的方向分配许多值。我试过了:

swiper.direction = [.right , .left ,  .up , .down]

这被编译器有趣地接受了,与使用按位 | 不同,但是,使用这个配置,函数:

@IBAction func swipe(_ sender: Any) {
    switch swiper.direction {
    case WKSwipeGestureRecognizerDirection.right:
        print("Swiped right")
    case WKSwipeGestureRecognizerDirection.down:
        print("Swiped down")
    case WKSwipeGestureRecognizerDirection.left:
        print("Swiped left")
    case WKSwipeGestureRecognizerDirection.up:
        print("Swiped up")
    default:
        break
    }

}

很少被调用,当它是 swiper.direction 时总是 .right。

Apple 在以下方面非常神秘: https://developer.apple.com/reference/watchkit/wkswipegesturerecognizer/1650828-direction 说:

"该属性的默认值是正确的。您可以指定更多 比一个方向跟踪多个方向的滑动 相同的手势识别器。”

没有透露如何。

【问题讨论】:

  • 文档没有很好地解释这一点,但是处理程序中识别器的direction 的值不是检测到的滑动的实际方向。这只是您最初设置的值。
  • 您应该查看 OptionSet 文档。他们非常清楚地解释了如何定义多个选项。
  • 这里选项集的用法是正确的,@jjatie。
  • @JoshCaswell 是的,但 OP 似乎不确定原因。

标签: swift watchkit swipe apple-watch


【解决方案1】:

无论如何,完全无视 Apple 所说的,将四个 WKSwipeGestureRecognizer 放在情节提要中,每个具有不同的方向和目标。

【讨论】:

    【解决方案2】:

    1) 从右侧的 Utilities 框中选择 WKSwipeGestureRecognizer

    2) 在属性检查器中,选中“Delays touches started”并选择您需要的“Swipe”类型

    -

    3) Ctrl + 拖动 IBAction 到你的 viewController 并实现函数

    【讨论】:

      猜你喜欢
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多