我有几个实例化UIControl类Foo的实例,一个实例对应于UITableView中的每个单元格。当触摸图像时,每个foo通过选择器切换单元格左侧的图像(选中标记,无复选标记)。我还为每个实例分配了一个标签:
foo.tag = indexPath.row;
单元格的中心具有人名,因此如果触摸该行上的图像,则“选择”该人。单元格的右侧有一个详细的披露按钮,以获取该人的详细信息。
以上所有工作都很好。
单元格的中心部分现在没有做任何事情,但我希望它能像触摸行上的图像一样。事实证明,选择一个人时必须触摸图像并不总是显而易见的。
我的didSelectRowAtIndexPath现在为空。我的想法是在didSelectRowAtIndexPath中通过其标记来调用与行上的图像(图像切换类的实例)对应的选择器。
这样做是否有意义,如果是这样,我该怎么做?
感谢。
答案 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应该包含所有实际实例 - 为什么不只是使用索引和数据源获取实例?