0

谁能解释我如何检测表视图标题视图中的选择,如 tableView:didSelectRowAtIndexPath: ?这对我来说非常有用。我已将标题定义为 UITableCellView,因此我可以将 UISwitch 作为附件视图附加,它工作得很好,但现在我无法检测到开关中所做的更改。有什么建议么?

4

1 回答 1

1

我将假设您正在动态创建开关,而不是在 IB 中创建它们。如果是这种情况,您需要做两件事来接收和区分对交换机的更改。首先,当您创建开关时,将其tag属性设置为代表相应部分的某个值(例如部分索引本身)。然后,将事件处理程序添加到将回调视图控制器上的方法的开关。

所以,在tableView:viewForHeaderInSection:,懒惰地实例化你的标题视图,也许缓存它,然后说:

[switch setTag:section];

并因此添加事件处理程序,其中 switchToggled: 的定义与任何其他 IBAction 一样:

[switch addTarget:self 
           action:@selector(switchToggled:)
 forControlEvents:UIControlEventValueChanged];

然后,只需将sender您在事件处理程序中收到的转换为UISwitch *,并使用该tag属性来判断哪个开关被切换。

于 2010-05-07T02:47:34.503 回答