2012-01-12 10 views
1

私は、UIImageViewのサブクラスである "MenuItem"というクラスにジェスチャ認識機能を追加しようとしています。UIImageViewサブクラスに「viewDidLoad」の種類のメソッドを追加するにはどうすればよいですか?

私はStoryboardを使用して、私のUIImageViewsの場所をレイアウトし、そのクラスをMenuItemに割り当てています。 Storyboardを使って各MenuItemにUIPanGestureRecognizerを追加するのではなく、コードでそれを実行したいと思います。

私はMenuItemに何らかの種類の "viewDidLoad"クラスを追加するのは大変だと思いますが、どうしたらよいか分かりません。任意のアイデアをいただければ幸いです。ありがとう

答えて

2

おそらく、UIViewの適切なinitメソッドでレコグナイザを追加したいだけです。このケースでは、InterfaceBuilderの中からそれらを作成しているので、オーバーライドする適切な方法は、次のようになります。

- (id)initWithCoder:(NSCoder *)coder { 
    self = [super initWithCoder:coder]; 
    if (self) { 
     // add gesture recognizers 
    } 
    return self; 
} 
+0

これは、ジェスチャ認識装置は、ビューコントローラのメソッドを呼び出すために必要がある場合は仕事に行くのではありません。 –

+0

親ビューコントローラがアクションを処理する場合は、viewDidLoadにいくつかのコードを追加して、MenuItemのすべてのインスタンスを検索し、認識機能を追加することができます。これはもちろん、アクションメソッドは各MenuItemで同じであると仮定しています。 – nickbona

+0

これは私のコードで正常に動作します。もともと私が言ったことは、私はViewControllerのサブビューでMenuItemのインスタンスを見つけるために、viewDidLoadのforループを使用して、それぞれに対してセットアップメソッドを実行しました。しかし、initWithCoderははるかにクリーンです。 ありがとう! – user339946

関連する問題