Apple annonced Shake API in iPhone SDK 3.0. I can not find any information regarding this new feature.
Who knows about how to use it? Any example, link will be good.
Apple annonced Shake API in iPhone SDK 3.0. I can not find any information regarding this new feature.
Who knows about how to use it? Any example, link will be good.
Joe Hewitt recently committed some code to Three20 that utilizes the 3.0 shake event. Seems like you just need to implement some simple code within -motionBegan:withEvent:
inside of your UIResponder
.
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
...
}
}
The APIs you are looking for are in UIResponder:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;
Generally you just implement this:
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
//Your code here
}
}
in your UIViewController subclass (UIViewController is a subclass of UIResponder). Also, you want to handle it in motionEnded:withEvent:, not motionBegan:withEvent:. motionBegan:withEvent: is called when the phone suspects shaking is happening, but the OS can determine the difference between a user purposefully shaking, and incidental shaking (like walking up the stairs). If the OS decides it was not a real shake after motionBegan:withEvent: is called it will call motionCancelled: instead of motionEnded:withEvent:.
I posted a complete 3.0 example in this thread:
http://stackoverflow.com/questions/150446/how-do-i-detect-when-someone-shakes-an-iphone
Do anybody know how to detect the shake event while playing movie?