我有这个 UITableView 显示图像,从数据库下载,作为矩阵:每个表行中有 4 个图像。
为了能够从我使用 UITapGestureRecognizer 的视图中选择图像。为了使每个选择都独一无二,我一直在尝试标记每个点击识别器和每个 imageView。这就是问题所在...
我在创建和标记 imageViews 和识别器的 for 循环中放置了一个日志,我可以在输出中看到它们传递了所有值。但是,当我尝试通过稍后按下图像来获取标签时,我总是得到“3”(表格行中的最后一个数字)。这让我觉得即使我在每个循环中都创建了一个新对象,这些标签也会相互覆盖。要么就是这样,要么我读错了。
不相关的部分被剪掉。
for (NSInteger i = 0; i < 4; i++){
asyncImage = [[AsyncImageView alloc]
initWithFrame:frame];
[asyncImage loadImageFromURL:url];
asyncImage.tag = i;
NSLog(@"TAG %d", asyncImage.tag);
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap)];
tapRecognizer.view.tag = i;
NSLog(@"TapTAG %d", asyncImage.tag);
[asyncImage addGestureRecognizer:tapRecognizer];
}
和方法:
- (void)handleTap{
NSLog(@"TAP %d", self.tapRecognizer.view.tag);
}
如果你认为我做的完全错了,向正确的方向轻推总是受欢迎的!
在此先感谢,汤姆