gpt4 book ai didi

ios - 尝试从组中打开一个 UISwitch,并在 iOS 中同时禁用其他 UISwitch

转载 作者:行者123 更新时间:2023-12-02 17:53:16 28 4
gpt4 key购买 nike

我正在开发一个应用程序,其中有一个 UISwitch(switch1) 控制其他 UISwitches(开关 2-5)。如果开关 1 打开,则开关 2-5 关闭并禁用。如果 switch1 关闭,switchs2-5 应关闭但启用,允许用户打开或关闭这些其他开关之一。

现在,如果 2-5 中的一个开关打开,那么 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 由于某种原因被启用。当我关闭开关 1 时,开关 3-5 被启用。最后,当我将开关从 2-5 打开时,其他剩余的开关将被禁用(正确),但是,当我将打开的开关切换为关闭时,2-5 中的任何开关都不会启用。为什么?

有人能看出我做错了什么吗?

最佳答案

将标签添加到 Storyboard中的 UISwitch,然后将 UISwitches 包含到上面提到的集合中后,您可以执行以下操作:

- (IBAction)switchCollectionTapped:(UISwitch *)sender {

[self.switchCollection enumerateObjectsUsingBlock:^(UISwitch *obj, NSUInteger idx, BOOL * _Nonnull stop) {

if (sender.tag != obj.tag) {
[obj setOn:NO];
}
}];
}

关于ios - 尝试从组中打开一个 UISwitch,并在 iOS 中同时禁用其他 UISwitch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297167/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com