如何限制iPhone摇动手势检测到特定情况?

时间:2012-03-25 19:15:15

标签: iphone objective-c ios accelerometer shake

我成功实施了摇动手势,但现在我想将其限制为仅在特定情况下激活(在我的应用的选项面板中)。

  • 我首先创建了ShakeWindow类,它是UIWindow的子类。在ShakeWindow中,我添加了- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event来注册摇动手势。

  • 接下来,我转到AppDelegate.m并编辑window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];以使用新的ShakeWindow而不是UIWindow。

效果很好,但我如何限制它的功能呢?我刚刚开始使用Objective-C并将自己视为一个新手编码器,所以在回答时请记住这一点,谢谢!

我使用Cocos2D作为框架,如果重要,我不使用Interface Builder。

1 个答案:

答案 0 :(得分:4)

我可能会误解,但是怎么样......

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {

    if (/* conditions where my app responds to shake */) {
        // respond to shake
    }
    // otherwise, it's like it never happened
}