1

我正在尝试开发一个包含一些图像的应用程序,所以我做了这样的事情:

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

我正在用以下内容填充这些UIImageView数组:

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

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

例子 :

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

4

3 回答 3

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];
于 2013-03-08T11:02:47.213 回答
1

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

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

于 2013-02-09T21:10:01.460 回答
0

有三种方法
1)您可以使用 TapGestures
2)您可以使用 UIControl 并在 UIControl 中添加 ImageView 并将 Selector 提供给 UIControl
3)将您的图像添加到自定义 UIButton

于 2013-02-10T04:28:39.280 回答