如何在Apple Watch应用程序中实现摇动手势?

时间:2015-03-31 09:06:34

标签: ios swift watchkit

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

以下是iOS上摇动手势实现的典型示例:

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

3 个答案:

答案 0 :(得分:4)

不,现在无法与WatchKit中的UIEvent做任何事情,使用当前解决方案"远程用户界面"这种方法主要是告诉手表如何使用故事板中预先安排的UI,并对点击按钮或表格行等操作做出反应。据Apple称,今年晚些时候手表上将会支持更多代码。

更新:现在可以为watchOS 2提供本机应用程序。此功能可能存在。

答案 1 :(得分:1)

现在可以在Watch 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)
}

答案 2 :(得分:0)

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

您可以使用coreMotion进行移动。 我在我的Github上构建了这个simple wrapper