【Xcode5.1.1 + iOS 7.1 + MacOX10.9.4】
一時的にUIGestureRecognizerをセットして、不要になったら削除するという場合のメモ。例えば・・・
・UITapGestureRecognizerはデフォルトで常に設定
・ある条件で、UIPanGestureRecognizerを追加
・不要になったら、UIPanGestureRecognizerだけを削除
というような場合。
for(UIGestureRecognizer *gesture in [selectIconView gestureRecognizers]) { NSLog(@" isClass UITapGestureRecognizer!! %d", [gesture isKindOfClass:[UITapGestureRecognizer class]]); NSLog(@" isClass UIPanGestureRecognizer!! %d", [gesture isKindOfClass:[UIPanGestureRecognizer class]]); }
※ selectIconViewは、UIGestureRecognizerを設定したUIImageView。
こんな感じで「isKindOfClass」で判定可能。
で、実際にやりたかったのは、こんな感じ。
for(UIGestureRecognizer *gesture in [selectIconView gestureRecognizers]) { // UIPanGestureRecognizerのみ削除 if([gesture isKindOfClass:[UIPanGestureRecognizer class]]) { [selectIconView removeGestureRecognizer:gesture]; } }
【参考】
・aideal.jp UIGestureRecognizer
・gesture recognizerを全削除する – 日々精進
・UIGestureRecognizerクラス | Second Flush
・Objective-C – UIViewからUIGestureRecognizerを削除 – Qiita
・isKindOfClassとisMemberOfClassってなにが違うねん | S4U -smile for you-