iOS:如何实现“摇动设备”事件?

时间:2011-07-24 13:02:35

标签: ios shake

我想向我的应用程序发送“摇动设备”事件 - 即,当用户摇动设备时会发生某些事情。 我试着实施:

-(void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (event.subtype == UIEventSubtypeMotionShake) {
        //something happens
    }
}

它似乎不起作用.......
有谁知道我应该使用哪种方法?

3 个答案:

答案 0 :(得分:5)

尝试使用以下代码,它对我来说很好。

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

    if ( [super respondsToSelector:@selector(motionEnded:withEvent:)] )
                [super motionEnded:motion withEvent:event];
}
- (BOOL)canBecomeFirstResponder
{
    return YES;
}

答案 1 :(得分:1)

可能要迟到才能回答,但在你的viewDidLoad中你需要包括。

[self becomeFirstResponder];

试一试。

答案 2 :(得分:0)

除了Taylor的解决方案,还要确保你的AppDelegate.m中有这个。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    application.applicationSupportsShakeToEdit = YES;
    return YES;
}