web-dev-qa-db-ja.com

UIImageにタップジェスチャを追加する

クリック可能なUIImageを作成しようとしています。ユーザーがクリックすると、アニメーション化されます...

uIScrollVIewを使用しているため、touchesBeganの代わりにUITapGestureを使用しましたが、UIGestureRecognizerはUIImageと互換性がないようです...

私は正しいですか?

このエラーメッセージが表示され続けます

インスタンスメッセージのレシーバータイプ「UIImage」は、セレクター「addGestureRecognizer」でメソッドを宣言していません

他に方法はありますか?

12
Crisn

UIImageではなくUIImageViewにTapGestureを追加する必要があります

imgView.userInteractionEnabled = YES;

UITapGestureRecognizer *tapGesture1 = [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(tapGesture:)];

tapGesture1.numberOfTapsRequired = 1;

[tapGesture1 setDelegate:self];

[imgView addGestureRecognizer:tapGesture1];

[tapGesture1 release];

定義されたセレクターでタップに応答し、そこで何かを行うことができます

- (void) tapGesture: (id)sender
{
    //handle Tap...
 }
24
Pooja Jalan

UIImageではなくUIImageViewにジェスチャーを追加する必要があります

6
jasondinh

TapGestureRecognizerをUIImageViewに追加するだけです。ジェスチャレコグナイザはビューにのみ追加できるため、UIImageViewを使用する必要があります。

UIView * someView = [[UIView alloc] initWithFrame:CGRectZero]; 
 UITapGestureRecognizer * tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; 
 tapRecogn。 1; 
 [someView addGestureRecognizer:tapRecognizer];

定義されたセレクターでタップに応答し、そこで何かを行うことができます

-(void)tapAction:(UITapGestureRecognizer *)tap 
 {
 //何かをする
}
3
mariusLAN

UIButtonの代わりにUIIMageを試して、UIButtonタイプをcustomにします。同じものをクリックすると、アニメーションを表示できます。

1
Sarah