2015-03-31 88 views
6

WatchKit reference似乎没有提及它。我错过了什么吗?或者是否真的无法在Apple Watch应用程序中实现摇动手势?如何在Apple Watch应用程序中实现摇动手势?

以下是摆动姿态实现对iOS的一个典型的例子:

// MARK: Gestures 
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) { 
    if(event.subtype == UIEventSubtype.MotionShake) { 
     // do something 
    } 
} 
+0

您可以使用coreMotion来获取移动。 我在我的Github上构建这个[简单封装](https://github.com/ezefranca/WatchShaker)。 – 2017-12-13 12:55:39

回答

4

不,这是不可能做到具有UIEvent S IN WatchKit做,现在,与当前解决方案的任何东西“远程用户界面“的方法,您大多只是告诉手表如何使用故事板中的预先安排的用户界面,并对点击按钮或表格行等操作做出反应。苹果公司表示,今年晚些时候将会有更多的代码运行在手表上。

更新:本地应用现在是可能的watchOS 2.该功能可以存在。

+1

在WWDC上,他们宣布现在可以在Watch OS 2测试版中使用。 – 2015-06-12 05:02:30

1

这是现在可以在观看OS2与CMMotionManager CoreMotion的一部分。

你可以有这样的解决方法。

let motionManager = CMMotionManager() 
if (motionManager.accelerometerAvailable) { 
    let handler:CMAccelerometerHandler = {(data: CMAccelerometerData?, error: NSError?) -> Void in 

     if (data!.acceleration.z > 0) { 
      // User did shake 
     } 
    } 
    motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: handler) 
} 
+0

我在这里看到一个常数为0来检测抖动。这个数字是否适合现实世界的使用? – 2015-11-04 23:44:29

+0

@FullDecent是的,它在我的项目中工作,因为加速度.z返回( - )当手表处于正常位置的值,当你做摇动加速度.z返回(+)值或大于零。 – Roger 2016-01-06 10:18:21

0

Roger如何说,解决方法是使用CoreMotion。

您可以使用coreMotion得到运动。我在Github上构建了这个simple wrapper

相关问题