ios - uiscrollview 内的 uiimageview 上的 UITapgesturerecognizer

标签 ios iphone objective-c uiscrollview uiimageview

我遇到一个问题,即我制作的点击手势识别器仅适用于 ScrollView 中的最后一项。

我有一组图像被添加到 UIImageView 并且 UIImageView 在以下代码中被添加到 ScrollView:

UIImageView *imageView1;
for (int i = 0; i < numberOfViews; i++) {
    xOrigin = i * imageSize;
    imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin,50,100,50)];
    [imageView1 setUserInteractionEnabled:YES];
    [imageView1 addGestureRecognizer:tap]; // The gesture I want
    [imageView1 setImage:[images objectAtIndex:i]];
    [scrollView addSubview:imageView1];
}
// Set the contentSize equal to the size of the UIImageView
// scrollView.contentSize = imageView.scrollview.size;
scrollView.contentSize = CGSizeMake(numberOfViews * imageSize, imageSize);


// Finally, add the UIScrollView to the controller's view
[self.view addSubview:scrollView];

上面的代码可以正常工作,可以按顺序将图像添加到 ScrollView 中,也可以将点击添加到列表中的最后一项。也就是说,其余的人没有获得点击操作?

提前致谢。

最佳答案

正如我所看到的,您只有一个点击手势对象,这就是为什么当您运行循环时,它只会被添加到最后一个 ImageView 中。

您需要为一个 ImageView 创建一个点击手势对象。

UIImageView *imageView1;
for (int i = 0; i < numberOfViews; i++) {
    xOrigin = i * imageSize;
    imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin,50,100,50)];
    [imageView1 setUserInteractionEnabled:YES];
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapMethod:)];
    [imageView1 addGestureRecognizer:tap]; // The gesture I want
    [imageView1 setImage:[images objectAtIndex:i]];
    [scrollView addSubview:imageView1];
}
// Set the contentSize equal to the size of the UIImageView
// scrollView.contentSize = imageView.scrollview.size;
scrollView.contentSize = CGSizeMake(numberOfViews * imageSize, imageSize);
// Finally, add the UIScrollView to the controller's view
[self.view addSubview:scrollView];

关于ios - uiscrollview 内的 uiimageview 上的 UITapgesturerecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22267020/

相关文章:

ios - 不能在 DelegateProxyType (rxSwift) 中使用 proxyForObject 函数

ios - NSLog 字符串很好,但输入 UITextView 的字符串会导致异常

iOS8 KeyboardWillShowNotification 第三方键盘高度

ios - 如何查看手机时间格式是否设置为24小时制?

ios - ld : framework not found FileProvider for architecture x86_64

ios - Kiosk 模式 iOS 应用程序和从应用程序商店自动更新

ios - 音乐转换以及如何知道是否写入完成

ios - 检测在ios中的原型(prototype)单元格中单击了哪个按钮

objective-c - 在 Xcode 中观察变量

ios - 如何创建要在运行时着色的模板图像