问题描述
我正在寻找如何通过 WatchKit SDK 在 Apple Watch 应用中检测手势.在 iOS 中,我们可以使用这样的代码:
I'm looking for how to detect gestures in an Apple Watch app, via the WatchKit SDK. In iOS we can use some code like this:
- (void)viewDidLoad
{
...
UISwipeGestureRecognizer *swipeRightBlack = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(slideToRightWithGestureRecognizer:)];
swipeRightBlack.direction = UISwipeGestureRecognizerDirectionRight;
[self.viewBlack addGestureRecognizer:swipeRightBlack];
}
...但这在 Apple Watch 模拟器中不起作用.有没有办法使用 WatchKit 覆盖默认的手势操作,或者在操作系统接收到它们时识别它们?
...but this doesn't work in the Apple Watch simulator. Is there a way to override the default gesture actions using WatchKit, or just recognize them when the OS receives them?
推荐答案
watchOS 3 为 WKGestureRecognizer
.
watchOS 3 adds third-party support for WKGestureRecognizer
.
Apple 还更新了他们的 WatchKit Catalog 示例代码 包含一个 WKInterfaceController 手势示例,演示如何在 Apple Watch 上使用各种手势.
Apple has also updated their WatchKit Catalog sample code to include a WKInterfaceController gesture example demonstrating how to use various gestures on the Apple Watch.
这是他们的代码片段,显示了 Storyboard 中配置的两个手势操作:
Here's a snippet from their code showing two of the actions for gestures configured in Storyboard:
class GestureDetailController : WKInterfaceController {
@IBOutlet var tapGroup: WKInterfaceGroup!
@IBOutlet var panGroup: WKInterfaceGroup!
...
@IBAction func tapRecognized(_ sender: AnyObject) {
tapGroup.setBackgroundColor(UIColor.green())
scheduleReset()
}
@IBAction func panRecognized(_ sender: AnyObject) {
if let panGesture = sender as? WKPanGestureRecognizer {
panGroup.setBackgroundColor(UIColor.green())
panLabel.setText("offset: \(NSStringFromCGPoint(panGesture.translationInObject()))")
scheduleReset()
}
}
这篇关于Apple Watch (WatchKit) 中的手势识别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!