0

サブクラスがあります:

CustomView : UIScrollView. 

このサブクラス内には、カスタム ビューにいくつかの UI 要素を設定するメソッドがいくつかあります。これらの要素に UIGesterRecognizer 機能を追加したいのですが、デリゲートの設定とセレクターの追加を処理する方法がわかりません。

@implementation  CustomView 

-populateMe{

     UIImageView *iv = [...];
     UIGesterRecognizer r = [UIGesterRecognizer alloc] 
          initWithTarget:self 
          action:@selector(handleMySwipe:); 
                          //<==where to declare handler

     r.delegate = self; //<==COMPILER ERROR self
     [iv.addGestureRecognizer r];
} 

したがって、私の問題は、上記でコメントした場所です。self は有効なデリゲートではありません (self.superclass を試しました)。アクションのハンドラー、つまり handleMySwipe をどこで宣言する必要がありますか。

わかるように説明してください。

4

1 に答える 1

0

CustomView UIGestureRecognizerDelegate プロトコルを実装する場合、デリゲートになる可能性があります。つまりCustomView、プロトコルで要求されるいくつかのメソッドをクラス内に実装します。

これが完了したら、selfエラーなしでターゲット パラメータを に設定できるはずです。ターゲットは現在であるため、クラスselfにセレクター/メソッドを実装する必要があります。handleMySwipe: CustomView

- (void) handleSwipe:(UIGestureRecognizer *)gr {
}
于 2012-12-18T23:22:51.263 に答える