如何检测点击/点击UIImageView?

时间:2013-02-09 20:54:11

标签: iphone ios objective-c uiimageview

我正在尝试开发一个有一些图片的应用程序,所以我做的就像:

@property (nonatomic, retain) IBOutletCollection(UIImageView)NSArray* photos;

我正在填充这些UIImageView数组:

[self.photos[i] setImage:[UIImage imageWithData:data]];

现在,我需要执行segue,将用户重定向到另一个视图,点击哪个图像。

示例:

假设我有20张图片和View,如果用户点击第一张图片,那么他应该被重定向到查看,如果用户点击第二张,那么相同的视图等等......

3 个答案:

答案 0 :(得分:3)

我喜欢在UIImageView上添加掩码按钮以响应用户触摸,但请注意默认情况下UIImageView的userInteractionEnabled为NO

下面是示例代码,实际上我们始终将按钮设置为透明。

CGRect imageRect = (CGRect){100, 100, 100, 100};
UIImageView *imageView = [[[UIImageView alloc] initWithFrame:imageRect] autorelease];
imageView.backgroundColor = [UIColor yellowColor];
[self.view addSubview:imageView];
imageView.userInteractionEnabled = YES;

UIButton *maskBtn = [UIButton buttonWithType:UIButtonTypeCustom];
maskBtn.frame = imageView.bounds;
maskBtn.backgroundColor = [UIColor redColor];
[maskBtn addTarget:self action:@selector(maskBtnDidClick:) forControlEvents:UIControlEventTouchUpInside];
[imageView addSubview:maskBtn];

答案 1 :(得分:1)

如果您正在使用UIImageView,那么要处理点击,您必须创建UITapGestureRecognizer,给它们一个选择器方法,并将它们添加到imageViews,并处理相应选择器中的点击。

更好的方法是使用自定义UIButtons而不是UIImageView,并使用storyboard / xib中的操作直接连接它们,并处理这些操作中的按钮事件。因此,您可以阻止在每个imageView中添加UITapGestures。

答案 2 :(得分:0)

有三种方式 1)您可以使用TapGestures
2)您可以使用UIControl&在UIControl中添加ImageView&给Selector选择UIControl
3)将您的图像添加到自定义UIButton