2010-08-10 6 views
0

내 앱에서 흔들림 이벤트를 처리하는 데이 방법을 사용했지만 큰 문제가있어서 나를 미치게합니다!어떻게 여러 번 iPhone 떨림을 방지합니까?

나는이 방법을 사용 http://www.iphonedevsdk.com/forum/iphone-sdk-development/55087-iphone-shake-detection-problem.html#post230283

을하지만, 문제는 응용 프로그램이 여러 번 이벤트를 흔들 감지입니다!

2010-08-10 14:06:43.700 APP[406:207] SHAKED 
2010-08-10 14:06:44.340 APP[406:207] SHAKED 
2010-08-10 14:06:44.692 APP[406:207] SHAKED 
2010-08-10 14:06:44.868 APP[406:207] SHAKED 
2010-08-10 14:06:45.044 APP[406:207] SHAKED 
2010-08-10 14:06:45.172 APP[406:207] SHAKED 
2010-08-10 14:06:45.332 APP[406:207] SHAKED 
2010-08-10 14:06:45.492 APP[406:207] SHAKED 
2010-08-10 14:06:45.644 APP[406:207] SHAKED 

택시는 어떻게 처리하나요?

답변

1

데이터를 사용하기 전에 디버깅해야합니다. 원칙은 매우 간단합니다. 일단 SHAKE을 읽으면 다음 초 동안 모든 값을 무시합니다.

감도 (지연)를 구성 할 수 있도록하는 것이 좋습니다.

예제 코드 :

NSDate *start = [NSDate date]; 

-(void)method:(UIAccelerometer *)accelerometer { 
    NSTimeInterval timeInterval = [start timeIntervalSinceNow]; 
    /* if our last shake was more than 1 second ago */ 
    if(timeInterval > 1.0){ 
     /* do yourthing here */ 
     start = [NSDate date]; 
    } 
} 
+0

실례 : 나는 평균 흔들림을 감지하기 위해 다음 코드를 사용! 나는 너를 이해할 수 있니? – Momi

+1

@Momeks : 저는 아주 간단한 예를 추가했습니다. 기본적으로 마지막 쉐이크가 발생한 시간을 확인하고 주어진 시간 내에 쉐이크를 무시합니다. @ Marichka의 코드와 함께 사용하면 유용 할 것입니다. iPhone Accelerometer에 대한 경험이 없으므로 민감한 부분을 알 수 없습니다. – Wolph

+0

나는 주된 문제를 여기에서 설명했다! : http://stackoverflow.com/questions/3414800/shake-iphone-with-accelerometer 보세요. – Momi

1

은 아마 문제는 가속도계 데이터의 모든 약간의 변화를 감지한다는 것입니다. 당신은/가벼운 흔들림 강한 감지 3.0 값을 변경할 수 있습니다

- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 
{ 
    if(sqrt(acceleration.x*acceleration.x + acceleration.y*acceleration.y + acceleration.z*acceleration.z)>3.0) 
    { 
     [self DoSomething]; 
    } 
} 

관련 문제