新しいブログでのこの記事はUIGestureRecognizerまとめ?こちらです。
シンタックスカラーなど導入しているのでソースコードが見やすくなっているはずなので是非っ。
OS3.2以降のOSで対応。
つまりiPadかiOS4が入ったiPhoneじゃないと動かない。
でも涙が出るくらい便利。
UITapGestureRecognizer : タップ(タップの数は任意で取得)
UIPinchGestureRecognizer : ピンチインとピンチアウト(拡大縮小用。二本指でくぱぁするアレ)
UIPanGestureRecognizer : パニング(ドラッグのこと)
UISwipeGestureRecognizer : スワイプ(ページ送りなど。ドラッグと似てる?)
UIRotationGestureRecognizer : 回転(指二本での回転)
UILongPressGestureRecognizer : 長押し(safariの新規タブを開くときに使うなど)
使い方は簡単。
タップの場合はUITapGestureRecognizerのインスタンスを作成してactionで動作したときに飛ぶ関数の指定。
あとはnumberOfTapsRequiredでタップの回数を指定。
ビューに追加して終わり。
以下ソース。
これはダブルタップの場合です。
UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(DetectionDoubleTap:)]; tapRec.numberOfTapsRequired = 2; [self.view addGestureRecognizer:tapRec]; [tapRec release];んで後はタップ判定後に飛ぶ実際の処理をする関数を作るだけ。
- (void)DetectionDoubleTap:(id)sender { NSLog(@"DoubleTap!"); }これでおk。
独自のUIをUIViewで作ったものにも簡単にタップやジェスチャを実装できるのはいいね。
ちなみにScrollView上に追加したUIButtonとどっちが優先されるかやってみた。
結果的にはタップ回数が1回の判定時はUIGestureRecognizerが優先されました。
ダブルタップ時はボタンが優先されました。
まぁダブルタップはともかくシングルタップ時はUIGestureRecognizerが優先されるみたいです。
0 件のコメント:
コメントを投稿