通过其标记调用类的实例

时间:2010-07-12 03:29:27

标签: iphone tags multiple-instances

我有几个实例化UIControl类Foo的实例,一个实例对应于UITableView中的每个单元格。当触摸图像时,每个foo通过选择器切换单元格左侧的图像(选中标记,无复选标记)。我还为每个实例分配了一个标签:

foo.tag = indexPath.row;

单元格的中心具有人名,因此如果触摸该行上的图像,则“选择”该人。单元格的右侧有一个详细的披露按钮,以获取该人的详细信息。

以上所有工作都很好。

单元格的中心部分现在没有做任何事情,但我希望它能像触摸行上的图像一样。事实证明,选择一个人时必须触摸图像并不总是显而易见的。

我的didSelectRowAtIndexPath现在为空。我的想法是在didSelectRowAtIndexPath中通过其标记来调用与行上的图像(图像切换类的实例)对应的选择器。

这样做是否有意义,如果是这样,我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:1)

在每个单元格中将标记设置为相同。

foo.tag = kFooTag;

在didSelectRow中,获取单元格,然后从单元格中获取foo。

-(void) tableView:(UITableView *)table didSelectRowAtIndexPath:(NSIndexPath *)path {
  UITableViewCell *cell = [table cellForRowAtIndexPath:path];
  UIView *foo = [cell viewWithTag:kFooTag];
  // do something with foo
}

如果您将foo添加到cell.contentView,则在其上调用viewWithTag。

答案 1 :(得分:0)

表视图的DataSource应该包含所有实际实例 - 为什么不只是使用索引和数据源获取实例?