我正在开发一个应用程序,其中我有一个UISwitch(switch1)来控制其他UISwitches(开关2-5)。如果switch1是打开的,开关2-5是关闭的,并禁用.如果switch1关闭,开关2-5应该关闭,但启用,允许用户打开或关闭其他开关之一。
现在,如果从2-5的开关是打开的,那么从2-5的所有其他应该关闭,并禁用。只有当从2-5打开的开关再次关闭时,所有从2-5打开的开关才启用。换句话说,开关2-5都是启用的,只有当开关全部关闭,当其中一个开关打开时,所有开关都是禁用的。我试着用我的代码来做这件事,但到目前为止还没有成功。以下是我所拥有的:
- (IBAction)MainSwitchAction:(id)sender {
if (self.mySwitch.on) {
[self disableCheckBoxes:YES];
} else if (!self.mySwitch.on){
[self disableCheckBoxes:NO];
}
}
当主开关打开/关闭时,将调用上述方法。我的另一个方法是:
-(void) disableCheckBoxes:(BOOL)switchOff {
if (switchOff==YES) {
for (int i = 1; 2 < 6; i++) {
UISwitch *sw = (UISwitch *)[self.view viewWithTag:i];
sw.on = NO;
sw.enabled = NO;
}
} else if (switchOff==NO){
for (int i = 2; i < 6; i++) {
UISwitch *sw = (UISwitch *)[self.view viewWithTag:i];
sw.on = NO;
sw.enabled = YES;
}
}
}
我的问题是:
在启动时,switch1的默认值是ON,这意味着所有其他开关都应该关闭并禁用。但是,由于某种原因,启用了switch2。当我关闭switch1时,开关3-5是启用的.最后,当我将开关从2-5点移动时,其余的开关将被禁用(正确),然而,当我将打开的开关关闭时,2-5中的任何一个开关都不会启用。为什么?
有人能看到我做错了什么吗?
发布于 2016-09-03 23:12:09
将标记添加到故事板中的UISwitch中,然后将UISwitches包含到上面提到的集合中之后,您可以执行以下操作:
- (IBAction)switchCollectionTapped:(UISwitch *)sender {
[self.switchCollection enumerateObjectsUsingBlock:^(UISwitch *obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (sender.tag != obj.tag) {
[obj setOn:NO];
}
}];
}
https://stackoverflow.com/questions/21297167
复制相似问题