测量摇动装置所需的时间

时间:2011-03-30 00:45:36

标签: iphone

我正在开发一个测量震动事件总时间的应用程序。换句话说,计时器在摇动事件开始时启动,并且计时器在摇动事件结束时停止。

所以我的问题是,如果我们用一只手握住两个iTouches然后同时摇动两个,那么震动事件会在两个iTouches上产生相同的值吗?

这是我的代码:

-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (motion == UIEventSubtypeMotionShake) {
        timer = [NSTimer scheduledTimerWithTimeInterval:0.00025 target:self selector:@selector(showactivity) userInfo:nil repeats:YES];
    }
}
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (motion == UIEventSubtypeMotionShake) {  
        [timer invalidate];
    }
}

1 个答案:

答案 0 :(得分:0)

我只是创建一个名为NSDate的{​​{1}}类型的实例变量,或者其他什么。然后在shakesBegan

中调用它
motionBegan

输出应该说-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { if (motion == UIEventSubtypeMotionShake) { shakesBegan = [NSDate date]; } } -(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { if (motion == UIEventSubtypeMotionShake) { NSDate *shakesFinished = [NSDate date]; NSTimeInterval shakeTime = [shakesFinished timeIntervalSinceDate:shakesBegan]; NSLog(@"Shaken for %f seconds",shakeTime); } } 。但是,我没有设备来测试这个,所以你的里程可能会有所不同。


您收到错误的原因是您必须使Shaken for 1.233242 seconds成为实例变量。在你的界面中这样:

shakesBegan