如何在Apple Watch应用程序中实现摇动手势?
WatchKit reference似乎没有提及它。我错过了什么吗?或者是否真的无法在Apple Watch应用程序中实现摇动手势?如何在Apple Watch应用程序中实现摇动手势?
以下是摆动姿态实现对iOS的一个典型的例子:
// MARK: Gestures
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
if(event.subtype == UIEventSubtype.MotionShake) {
// do something
}
}
不,这是不可能做到具有UIEvent
S IN WatchKit做,现在,与当前解决方案的任何东西“远程用户界面“的方法,您大多只是告诉手表如何使用故事板中的预先安排的用户界面,并对点击按钮或表格行等操作做出反应。苹果公司表示,今年晚些时候将会有更多的代码运行在手表上。
更新:本地应用现在是可能的watchOS 2.该功能可以存在。
在WWDC上,他们宣布现在可以在Watch OS 2测试版中使用。 – 2015-06-12 05:02:30
这是现在可以在观看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来检测抖动。这个数字是否适合现实世界的使用? – 2015-11-04 23:44:29
@FullDecent是的,它在我的项目中工作,因为加速度.z返回( - )当手表处于正常位置的值,当你做摇动加速度.z返回(+)值或大于零。 – Roger 2016-01-06 10:18:21
您可以使用coreMotion来获取移动。 我在我的Github上构建这个[简单封装](https://github.com/ezefranca/WatchShaker)。 – 2017-12-13 12:55:39