我有一个UITableView
我有一些可点击的单元格和一些UISwitch
的单元格。我认为检测UITableView
或UISwitch
是否被点击的最佳方法是使用标记。
我已经为这些项目添加了标签,但我不太清楚如何对其进行编码以便进行检测。我怎么能这样做?
注意:我意识到这是iOS 7,但由于Apple现在允许所有开发人员提交应用程序,我认为可以安全地假设它不再是NDA。
答案 0 :(得分: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];
答案 1 :(得分: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....
}
你的桌面滚动吗?如果包含开关的单元格在屏幕上滚动,则由于表视图回收单元格的方式,您可能在访问它时遇到一些问题。代码abouve假设您不会遇到此问题。