我在以下站点上获得了此解决方案:Click an UIImage and open an UIImageView in Objective-c
将UITapGestureRecognizer
添加到您的UIImageView
中:
UITapGestureRecognizer *tapRecognizer;
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourSelector)];
[thumbnail addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
thumbnail.userInteractionEnabled = YES; // very important for UIImageView
这对于单个ImageView来说效果很好,但是我要在我的scrollView中添加多个(大约20个),然后如何区分用户将要点击或选择的ImageView。我试图设置自己的@selector(imageClicked),但它只返回最后一个imageView的标签。
我在循环中添加addGestureRecognizer,因为我在imageView中动态加载了20个静态图像。
最佳答案
这可能有帮助
for(int i=0;i<20;i++)
{
UIImageView *img=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"yourimage.png"]];
[img setTag:i];
img.frame= //set frame accordingly;
img.userInteractionEnabled = YES;
UITapGestureRecognizer *tap =
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[img addGestureRecognizer:tap];
[tap release];
[scrollView addSubView:img];
}
- (void)handleTap:(UITapGestureRecognizer *)recognizer {
UIImageView *imageView = (UIImageView *)recognizer.view;
switch([imageView tag])
{
case 1:
//do your work
break;
.
.
.
.
case n:
}
}
关于iphone - 单击任何UIImage并在Objective-C中打开UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075738/