7

drawRect メソッドをオーバーライドする必要があったため、UIView のカスタム サブクラスを作成しました。UITapGestureRecognizer を追加しようとしましたが、うまくいきません。ここで、私のViewControllerのコード:

MyCustomView *customView = [[MyCustomView alloc] initWithFrame:CGRectFrame(0, 30, 30, 30)];
[customView setUserInteractionEnabled:YES];

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[customView addGestureRecognizer:tapGestureRecognizer];

UIView サブクラス オブジェクトに触れたときにジェスチャ認識エンジンが起動しない理由がわかりません。

よろしくお願いします!

修正しました!

私のビューはUIImageViewにあり、そのUIImageViewはuserInteractionEnabledYESに設定されていませんでした。

4

4 に答える 4

13

修正しました!

私のビューはUIImageViewにあり、そのUIImageViewはuserInteractionEnabledYESに設定されていませんでした。

于 2012-06-11T12:01:13.813 に答える
0

どこかに表示していることを確認してください(addSubview)。

于 2012-06-11T11:13:05.750 に答える
0

追加するサブビューで UserInteractionEnable チェックを true に設定し、セレクター メソッドでオブジェクトを一緒に渡します。

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)];

セレクターメソッドを次のようにします

-(void) doSomething:(UITapGestureRecognizer *)gesture;

問題が解決しない場合はお知らせください。ありがとう!

于 2012-06-11T12:00:34.017 に答える
0

また、userInteractionEnabled が true に設定されていることを確認してください。それが本当なら、ジェスチャ認識エンジンを作成して接続するコードを投稿してください。

于 2012-06-11T11:51:34.717 に答える