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];

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 回答