1

私はアプリケーションを開発しています。私は70を使用していUIImageViewsます。私UIImageViewsは single を使用していUITapgestureRecognizerます。しかし、 last でのみ機能しUIImageViewます。

UITapGgestureRecognizerそれで、そのすべてにシングルを使用する方法を教えてください。私のUIImageViewsコードは次のようになります

radiotap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(radiochanged:)];
radiotap.delegate=self;

a=[[UIImageView alloc]initWithFrame:CGRectMake(10, male.frame.origin.y, ima.size.width, ima.size.height)];
[a setImage:ima];
a.tag=0;
a.userInteractionEnabled=YES;
[a addGestureRecognizer:radiotap];
[scroll addSubview:a];


 b=[[UIImageView alloc]initWithFrame:CGRectMake(10, female.frame.origin.y, ima.size.width, ima.size.height)];
[a setImage:ima];
b.tag=1;
b.userInteractionEnabled=YES;
[b addGestureRecognizer:radiotap];
[scroll addSubview:b];

このように、70 個の UIImageView を追加しました。

4

3 に答える 3

0

UITapGestureRecognizerを実際のビューに追加すると、次のようになります。

リンク先のビューを含むUITapGestureRecognizerのプロパティを設定しています。つまり、各UITapGestureRecognizerにはuiviewのみが関連付けられています。

そのため、最後に設定したものでのみ表示されます。

やりたいことを行うには、ビューごとにUITapGestureRecognizerを作成/割り当て/初期化する必要があります...

于 2012-07-05T10:04:47.840 に答える
0

UITapGestureRecognizer1対 1 で割り当てることができますUIView。1 つのアイデアは、サブクラス化して a をプロパティとしてUIIimageView追加することです。そして、for ループ内のすべての新しいUITapgestureRecognizerものに対して alloc/init を実行します。UIImageViewUITapGestureRecognizer

于 2012-07-05T09:41:15.900 に答える
0
  1. 画像ビューのコンテナーにタップ ジェスチャ レコグナイザーを追加します。
  2. すべての画像ビューでユーザー操作を無効にする

このようにして、画像ビューを保持しているコンテナの下にタッチが渡されます。

ねえ、私は今あなたの問題を手に入れました。

イメージ ビューごとに新しいジェスチャ レコグナイザーを作成します。問題は、ジェスチャ認識エンジンのインスタンスを 1 つしか作成していないことです。

そこにバグがあり、コードを適切に編集してくれることを願っています。行き詰まったらお知らせください。

于 2012-07-05T09:39:07.857 に答える