以前曾以某种形式提出过这个问题,但我找不到适用于我情况的答案。
简而言之:我正在为我的应用程序构建一个画廊模块。它由几个部分组成,每个部分中有许多缩略图。基本原则是图像查看器模块根据用户所在的部分以及他或她点击的缩略图以模态方式启动和呈现。看起来很简单;我所需要的只是在图像查看器初始化时传递两个 int 变量(一个用于部分,一个用于图像),一切都是 hunky-dory。
问题是 UITapGestureRecognizer 不能直接调用方法。它使用选择器,我无法通过它传递参数,更不用说两个了。我正在寻找的是这样的:
[thumbnail004 setUserInteractionEnabled:YES];
UITapGestureRecognizer *tap004 = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(imageTappedWithSectionNumber:6
andImageNumber:4)];
[thumbnail004 addGestureRecognizer:tap004];
使用 UITapGestureRecognizer 时,有没有办法直接使用参数调用方法?
如果没有,解决此问题的一种明显方法是为每个图像点击创建单独的方法,例如:
- (void) image1_1Tapped {
// View initialization by passing 1 and 1
}
- (void) image1_2Tapped {
// View initialization by passing 1 and 2
}
And so on...
这是可能的,因为图像库不是动态的,但是,它将是世界上最丑陋的代码,我想不惜一切代价避免它。
必须有一种方法可以使用干净优雅的代码来做到这一点......!
供进一步参考: 1.我不使用IB;我以编程方式做所有事情。2.传递一个参数是不够的;我真的需要通过两个。