シェイクジェスチャーを実装するためには UIViewController クラスのサブクラスをファーストレスポンダーに設定する必要がある。
INDEX
シェイクジェスチャーの実装方法
- UIResponderクラスのcanBecomeFirstResponderメソッドをオーバーライド
- [code]
– (BOOL)canBecomeFirstResponder { return YES; }
[/code] - 現在のViewをFirstResponderにする
- [code]
– (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self becomeFirstResponder];
}– (void)viewDidDisappear:(BOOL)animated
{
[self resignFirstResponder];
[super viewDidDisappear:animated];]
}
[/code] - イベントメソッドをオーバーライド
- [code]
//モーション開始時に実行
– (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@”motionBegan:”);
}//モーション終了時に実行
– (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@”motionEnded:”);
}//モーションキャンセル時に実行
– (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@”motionCancelled:”);
}
[/code]
まとめ
シェイクジェスチャーで色々とやってみたいところですが、Appleではシェイクジェスチャーは基本的に何かの選択をキャンセルしたり、シェイクするという動きそのものに関連性のあるアクションを定義することを推奨しています。