kAccelerationThreshold

kAccelerationThreshold

我使用检测震动的代码,该代码在设备上有效,但是当我在模拟器上使用震动手势时,为什么不起作用?

我使用下面的代码进行检测

#define kAccelerationThreshold      2.2
#define kUpdateInterval         (1.0f/10.0f)

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
        if (fabsf(acceleration.x) > kAccelerationThreshold || fabsf(acceleration.y) > kAccelerationThreshold || fabsf(acceleration.z) > kAccelerationThreshold)
            ...
}

最佳答案

看看UIResponder的motionEnded:方法。您可以在窗口,视图或视图控制器上实现motionEnded来检测抖动,如下所示:

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if (event.type == UIEventSubtypeMotionShake)
    {
        // your code here

    }
}


在我的应用程序中,我需要一个应用程序范围内的震动处理程序。因此,我将UIWindow子类化(大多数情况下,我的应用程序都有一个窗口),并将处理程序放入该子类中。

关于iphone - 摇动手势不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4195112/

10-09 21:03