2011-10-26 6 views
1

UIPanGestureRecognizerをサブクラス化されたUIImageViewにアタッチするときに、 "インスタンスに送信されたセレクタが認識されません"というメッセージが表示されてクラッシュする。カスタムプロパティを保持するためにUIImageViewをサブクラス化する必要があるので、これを行い、それらのプロパティを追加しました。私はUIImageViewで直接パニングをテストして、期待どおりに動作します。ただし、サブクラス化されたUIImageViewでは動作しません。UIIestureRecognizerをサブクラス化されたUIImageViewに添付することはできますか?

-(void)moveUIImageView:(UIPanGestureRecognizer *)pan{ 
    ... 
} 

-(void)moveCustomImageView:(UIPanGestureRecognizer *)pan{ 
    ... 
} 
+0

をエラーメッセージ「認識されていないセレクタがインスタンスに送信されたが、」セレクタは、それが認識されないし、あなたにそれを送信しようとしたインスタンスのクラスだった何であったかを教えてくれます。その情報は質問に追加する必要があります。 – morningstar

+0

申し訳ありませんが、それはハンドラメソッド宣言(タイプミス)の型付きエラーであるようです。また、@Srikar提案を適用した後、すべてがうまくいきました。 – Centurion

答えて

2

UIImageViewは、デフォルトでは、ハンドラメソッドの宣言が同じ構造である

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIPanGestureRecognizer * pgr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveCustomImageView:)]; 
    [self.myImageView addGestureRecognizer:pgr]; //nop, getting error during runtime on start panning 
    [pgr release]; 
    ... 
    pgr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveUIImageView:)]; 
    [self.defaultImageView addGestureRecognizer:pgr]; //yep, that works 
    [pgr release]; 

NOsetUserInteractionEnabledフラグがセットされている:ここでのコードは、(self.myImageViewがUIImageViewとself.defaultImageViewがUIImageViewあるサブクラスれる)です& setMultipleTouchEnabledNOに設定します。これらのフラグをYESに変更しようとしましたか?あなたがそうのようにこれを変更することができ

-

[self.myImageView setMultipleTouchEnabled:YES]; 
[self.myImageView setUserInteractionEnabled:YES]; 
関連する問題