摇动手势在iOS中如何运作?

时间:2014-04-14 05:52:39

标签: ios iphone objective-c uigesturerecognizer

我知道如何检测shake gesture。它可以通过以下程序检测:

打开你的AppDelegate.m'并将以下代码添加到application:didFinishLaunchingWithOptions:方法中。

您必须在' return YES'。

之前添加
[application setApplicationSupportsShakeToEdit:YES];

现在打开你的viewController.m'要使用controller的{​​{1}}文件。修改shake gestureviewDidAppear:方法。

添加以下代码:

viewDidDisappear:

之后你应该在下面的代码中添加方法:

- (void)viewDidAppear:(BOOL)animated {

    [self becomeFirstResponder];
}

- (void)viewDidDisappear:(BOOL)animated {

    [self becomeFirstResponder];
}

但我想知道逻辑是如何运作的。

如何检测?是否使用- (BOOL)canBecomeFirstResponder { return YES; } - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { // Do your thing after shaking device } CoreMotionaccelerometermagnetometer)进行检测?

如果有人知道请分享。

1 个答案:

答案 0 :(得分:0)

这取决于你拥有的设备,但Core Motion确实是正确答案。

设备通常有两种方法可以检测运动,加速度计和陀螺仪 并非所有iOS设备都有陀螺仪。无论如何,Core Motion在启用时跟踪设备并允许您从一个或两个中进行采样。

查看apple's docs以获得更详细的了解。