我想在表格的每个单元格中使用标签建立链接。
单击链接时,表格将获得单元格的 [indexpath row] ,我们将使用索引与包含字符串数据的数组索引匹配。该字符串将被发送到下一个推送页面。
我正在使用 UITapGestureRecognizer 来点按标签并将参数放入选择器方法。
如何将当前索引路径行添加到所选单元格上的标签? 这是我的示例代码:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
...
UITapGestureRecognizer *gestureRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openUrl:) ];
gestureRec.numberOfTouchesRequired = 1;
gestureRec.numberOfTapsRequired = 1;
[cell.listPrice addGestureRecognizer:gestureRec];
[gestureRec release];
...
}
- (void)openUrl:(id)sender
{
NSLog(@"DOwnload URL send >> %@",urlDownloadSend);
DownloadNowController *download =[[DownloadNowController alloc]initWithNibName:@"DownloadNowController" bundle:nil];
[self.navigationController pushViewController:download animated:YES];
[download release];
}
答案 0 :(得分:15)
要确定当前选定的单元格,您可以使用UITableView
的下一个方法:
- (NSIndexPath *)indexPathForSelectedRow
但是我不确定在UITapGestureRecognizer
被解雇后你的单元格会被选中。
我建议您将单元格的行直接存储在gestureRec.view
属性中的tag
中:
gestureRec.view.tag = indexPath.row;
然后在openUrl
中,您可以通过获取sender.view.tag
答案 1 :(得分:3)
目前还不是很清楚你想做什么..你是否在UITableViewCell
上设置了一个触发其他行动的链接?
UITableViewDelegate
为您提供了一些 非常酷的 方法:
– tableView:willSelectRowAtIndexPath:
– tableView:didSelectRowAtIndexPath:
– tableView:willDeselectRowAtIndexPath:
– tableView:didDeselectRowAtIndexPath:
当您点按一个单元格时,系统会调用willSelectRowAtIndexPath
和didSelectRowAtIndexPath
- 为您提供当前选定的NSIndexPath
,您可以使用该{{3}}获取该行,如下所示:
indexPath.row;
答案 2 :(得分:2)
您可以使用全局变量来保留indexpath.row
将行存储在didSelectRow:atIndexPath:
方法
var = indexPath.row;
[tableView reloadData];
var = indexPath.row;
[tableView reloadData];
然后在cellForRowAtIndexPath
if(indexPath.row==var){
}
答案 3 :(得分:1)
您可以在– tableView:willSelectRowAtIndexPath:
中实施方法UITableViewDelegate
。在那里,您可以轻松获取有关indexPath的信息。
答案 4 :(得分:1)
你可以这样做
in cellForRowAtIndexPath数据源方法
UIImageView* selectedBg = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bg_selected.png"]];
cell.backgroundView = [[UIView alloc] initWithFrame: CGRectZero];
cell.selectedBackgroundView = selectedBg;
[cell.backgroundView setNeedsDisplay];
[selectedBg release];
答案 5 :(得分:0)
以下代码可用于获取当前选定的索引路径行:
save