0

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

foo.tag = indexPath.row;

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

以上所有工作正常。

单元格的中心部分现在不执行任何操作,但我希望它执行与触摸行上的图像相同的操作。事实证明,选择一个人时必须触摸图像并不总是很明显。

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

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

谢谢。

4

2 回答 2

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 。

于 2010-07-12T03:50:49.360 回答
0

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

于 2010-07-12T03:35:32.593 回答