使用Storyboard在WatchKit上检测四个方向的滑动手势。

5

我正在尝试检测AppleWatch上所有四个方向的滑动手势。但我不清楚如何将多个值分配给我在Storyboard中插入的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属性,而且调用时它的值通常为右滑。

Apple在此处非常神秘: https://developer.apple.com/reference/watchkit/wkswipegesturerecognizer/1650828-direction 通过以下说法:

"该属性的默认值为right。您可以指定多个方向,以使用相同的手势识别器跟踪多个方向的滑动。"

没有透露具体如何实现。


可能是如何识别四个方向的滑动手势的重复问题。 - jscs
文档没有很好地解释,但是在处理程序中,识别器的“direction”值并不是检测到的滑动实际方向。它只是您最初设置的值。 - jscs
你应该查看OptionSet文档。它们非常清楚地解释了如何定义多个选项。 - jjatie
这里使用选项集是正确的,@jjatie。 - jscs
@JoshCaswell 是的,但是原帖作者似乎对此不确定。 - jjatie
与引用帖子不同,我想在Storyboard中使用手势识别器而不是按照苹果建议在程序中定义它。至于OptionSet文档,则指示使用我所使用的数组表示法。至于第二篇帖子,如果那不是实际方向,那是什么?更重要的是,我如何获取实际的滑动方向? - Fabrizio Bartolomucci
2个回答

0
无论如何,完全忽略苹果公司的说法,在Storyboard中放置四个WKSwipeGestureRecognizer,每个手势识别器具有不同的方向和目标,就可以完成任务。

0

1) 在右侧的“工具”栏中选择 WKSwipeGestureRecognizer

2) 从属性检查器中选中“延迟触摸开始”并选择所需的“Swipe”类型

-

3) Ctrl + 拖动 IBAction 到您的视图控制器并实现函数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接