0

我有一个UITableView可以点击的单元格和一些具有UISwitch. 我认为检测 a UITableVieworUISwitch是否被点击的最好方法是使用标签。

在此处输入图像描述

我已经为这些项目添加了标签,但我不太确定如何对其进行编码以进行检测。我怎样才能做到这一点?

注意:我知道这是 iOS 7,但由于 Apple 现在允许所有开发人员提交应用程序,我认为可以安全地假设它不再受 NDA 保护。

4

2 回答 2

2
 UISwitch *label = (UISwitch *)[self viewWithTag:2];

建议:如果您不使用属性来保持对这些项目的引用 - 请确保您在代码中拥有比 1、2、3 更好的东西。列举这些元素,例如:

 typedef enum {
     kUIElementTableView,
     kUIElementSaveSwitch
 } UIElements;

 UISwitch *label = (UISwitch *)[self viewWithTag:kUIElementTableView];
 UISwitch *label = (UISwitch *)[self viewWithTag:kUIElementSaveSwitch];
于 2013-09-12T15:07:56.707 回答
2

@Grzegorz Krukowski 的回答向您展示了如何控制代码中的切换。

您还需要设置一个方法,以便在您点击开关后调用。这样做的方法是这样的:

获取对您的开关的参考,也许在viewDidLoad

UISwitch *label = (UISwitch *)[self.view viewWithTag:2];

然后设置一个方法,一旦触发控制事件就运行

[label addTarget:self action:@selector(switchValueChanged:) 
            forControlEvents:UIControlEventValueChanged];

- (void)switchValueChanged:(UISwitch *)switch {
    // Do something here....
}

你的 tableview 滚动吗?如果包含开关的单元格滚动到屏幕外,由于表格视图循环单元格的方式,您可能无法访问它。上面的代码假设您不会遇到此问题。

于 2013-09-12T15:25:28.190 回答