Iphone 摇动手势不';行不通
我使用了一个检测震动的代码,这个代码在设备上工作,但当我在模拟器上使用震动手势时,为什么不工作 我使用下面的代码来检测它Iphone 摇动手势不';行不通,iphone,xcode,ios4,Iphone,Xcode,Ios4,我使用了一个检测震动的代码,这个代码在设备上工作,但当我在模拟器上使用震动手势时,为什么不工作 我使用下面的代码来检测它 #define kAccelerationThreshold 2.2 #define kUpdateInterval (1.0f/10.0f) - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
#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)
...
}
“抖动手势”(模拟器上可能的手势)不是使用加速计进行的自定义抖动检测,而是由iOS检测到的抖动事件。所以你不能用你的方法来检测它。检查第二个答案(不是已接受的答案)以了解如何检测抖动手势。查看UIResponder的motionEnded:method。可以在窗口、视图或视图控制器上实现motionEnded来检测抖动,如下所示:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (event.type == UIEventSubtypeMotionShake)
{
// your code here
}
}
在我的应用程序中,我需要一个应用程序范围的震动处理程序。因此,我将UIWindow子类化(我的应用程序和大多数应用程序一样只有一个窗口),并将处理程序放在该子类中 它可以工作,但在其他答案中列出的模拟器中不起作用。忽略这一事实,通过其他方式(如按钮等)在模拟器中调用该方法。我不建议使用与您可以通过模拟器触发的事件相对应的实际震动事件。除非你想让你的用户把手机扔得到处都是。内置的震动检测不是很灵敏。如果你的意思是回答“Kendall Helmstetter Geln”。它不起作用,但肯定不起作用。我已经做到了。你可能在什么地方遗漏了什么。在stackoverflow和google上搜索“iPhone运动检测”,你会找到更多的答案,详细告诉你如何做到这一点。它可以在模拟器上工作。