在我的iPhone应用程序中,我UITableView
通过子类将a与自定义表格单元格一起使用UITableViewCell
。假设我的自定义单元格类名称为ItemTableViewCell。相关的ItemTableViewCell.xib有一个UIView
名为infoView的子视图。
我希望infoView能够识别它所获得的单点点击/触摸。如果只是轻按,我可以通过UITapGestureRecognizer
使用故事板进行添加,并为此提供一种操作方法。但是我需要的是在识别infoView的点击/触摸时,我需要将相关的表行信息传递给目标方法/选择器。
如果我再说明情况,UITableView
由NSArray
的UITableViewCell
。该自定义单元格的底部带有一个名为infoView的子视图。通过点击/触摸该infoView,它应该以相关的NSArray元素作为参数来调用一个方法。通过点击/触摸单元格的其余部分,它应该像平常一样调用didSelectRowAtIndexPath
method。
我找到了解决方案。在创建自定义单元格时,我将UITapGestureRecognizer添加到相关的UIVIew(在我的情况下是infoView)中,如下所示。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOnInfoView:)];
[tap setNumberOfTouchesRequired:1];
[tap setNumberOfTapsRequired:1];
[cell.infoView addGestureRecognizer:tap];
[cell.infoView setUserInteractionEnabled:YES];
[cell.infoView setTag:realIndex];
从最后一行可以看到,我将单元格索引而不是单元格数据传递给选择器,选择器将在识别出轻击手势后触发。
同时,我正在维护一个NSMutableArray来存储单元格的数据。如您所知,每个单元索引将同时存在NSArray元素。
这就是我的选择器的外观;
- (void)tappedOnInfoView:(UIGestureRecognizer *)sender {
通过使用下面的代码,您可以获取与发生踢踏舞有关的索引
sender.view.tag
使用以下代码片段,我可以获取存储在NSMutableArray中的单元格的详细信息
[myMutArray objectAtIndex:sender.view.tag];
任务完成 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句