0

シェイク ジェスチャを正常に実装しましたが、特定の 1 つの状況 (アプリのオプション パネル) でのみアクティブになるように制限したいと考えています。

  • 最初に UIWindow のサブクラスである ShakeWindow クラスを作成しました。ShakeWindow で- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event、シェイク ジェスチャを登録するように追加しました。

  • 次に AppDelegate.m に移動しwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];、UIWindow の代わりに新しい ShakeWindow を使用するように編集しました。

うまく機能しますが、機能を制限するにはどうすればよいですか? 私はObjective-Cを始めたばかりで、自分自身を全体的に初心者のコーダーだと考えているので、答えるときはそのことを覚えておいてください、ありがとう!

私はフレームワークとして Cocos2D を使用していますが、問題があれば Interface Builder は使用しません。

4

1 に答える 1

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
}
于 2012-03-25T19:30:37.657 に答える