1

UIImageViewsがありuserInteractionEnabled、現在タップしている画像で知りたいです。それを知るために私は何をすべきですか?私はポスターの壁とそのためのクラスをThumbPosterModel持っています。そこに私が通過したいすべてのポスター情報があります。

だから私のコードは:

for (ThumbPosterModel *tPoster in _thumbsPosterStack) {

    UIImageView *imageView = [[UIImageView alloc] initWithImage:tPoster.thumb];
    imageView.userInteractionEnabled = YES;
    imageView.frame = CGRectMake(i, imageView.frame.origin.y, imageView.frame.size.width, imageView.frame.size.height);

    [_posterWallScrollView addSubview:imageView];

    UITapGestureRecognizer *tap =
    [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
    [imageView addGestureRecognizer:tap];
}

そして、私は持っています:

-(IBAction)imageTapped:(id)sender {
    //something do here, but know i don't know what.
}

UIImageViewすべてのThumbPosterModelパラメータを含む必要があるサブクラスを作成する必要がありますか?それは良い考えではないと思いますが、他の解決策を見つけることはできません。

4

3 に答える 3

2

これは非常に簡単tagです。各画像のプロパティを適切で明確な値で追加0し、そのプロパティを使用して画像を識別します:)

ハッピーコーディング:)

于 2012-08-07T08:34:59.410 に答える
1

ジェスチャレコグナイザーが起動されると、アクションの送信者がレコグナイザーになるため、を呼び出すことで、接続されているUIViewを取得できます。[sender view];

したがって、thumbsポスタースタックを検索し、一致するthumbを持つポスターを見つけるメソッドを作成できますがUIImageView、ポスターへの参照を含むサブクラスを作成する方がおそらく簡単です。だからあなたがビューを取得するときは

PosterImageView *selectedPosterView = (PosterImageView *) [sender view];
ThumbPosterModel *selectedModel = selectedPosterView.model;
于 2012-08-07T08:34:19.283 に答える
0

各imageViewにタグを設定します。

forループの反復ごとに、画像ビューをNSMutableArray(arrayRef)に追加します。

画像ビュー(tagImage)をタップすると画像ビューのタグにアクセスします。

それから

UIIMageView *imageViewR=[arrayRef objectAtIndex:tagImage-1];

imageViewRタップimageViewです

于 2012-08-07T09:13:37.783 に答える