【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-