gpt4 book ai didi

objective-c - 在 iOS 上使用 UISwitches 作为单选按钮

转载 作者:行者123 更新时间:2023-11-28 20:33:17 25 4
gpt4 key购买 nike

在我的应用程序中,我需要用户在 4 种类型的过滤器之间进行选择。如果他选择了一个过滤器,其余的应该关闭。启动应用程序时,会预先选择 1 种类型的过滤器。要选择一个过滤器,我正在使用 UISwitches。每次应该打开 1 个且只有 1 个开关。永远不会全部关闭,也不会超过一个。

为了完成这项工作,我使用了 4 个 UISwitch。我的代码看起来像这样:

- (IBAction)noFilterButtonTapped:(id)sender {
if([noFilterButton isOn]){
[noFilterButton setOn:YES animated:YES];
[filterByTopicButton setOn:NO animated:YES];
[filterByDateButton setOn:NO animated:YES];
[filterByDistanceButton setOn:NO animated:YES];
}
else [noFilterButton setOn:YES animated:YES];

}

- (IBAction)filterByTopicButtonTapped:(id)sender {
if([filterByTopicButton isOn]){
[noFilterButton setOn:NO animated:YES];
[filterByTopicButton setOn:YES animated:YES];
[filterByDateButton setOn:NO animated:YES];
[filterByDistanceButton setOn:NO animated:YES];
}
else [filterByTopicButton setOn:YES animated:YES];
}

- (IBAction)filterByDateButtonTapped:(id)sender {
if([filterByDateButton isOn]){
[noFilterButton setOn:NO animated:YES];
[filterByTopicButton setOn:NO animated:YES];
[filterByDateButton setOn:YES animated:YES];
[filterByDistanceButton setOn:NO animated:YES];
}
else [filterByDateButton setOn:YES animated:YES];
}

- (IBAction)filterByDistanceButtonTapped:(id)sender {
if([filterByDistanceButton isOn]){
[noFilterButton setOn:NO animated:YES];
[filterByTopicButton setOn:NO animated:YES];
[filterByDateButton setOn:NO animated:YES];
[filterByDistanceButton setOn:YES animated:YES];
}
else [filterByDistanceButton setOn:YES animated:YES];
}

代码运行良好。如果你按下一个已经打开的开关,开关会再次打开(实际上会关闭半秒钟,然后自动打开)。如果你按下另一个开关,那么它就会打开,其余的都会关闭。问题是,在测试应用程序时,我注意到如果我按下一个开关并立即按下另一个开关,它们都可以打开!我认为发生这种情况是因为使用此代码,当您按下一个已经打开的开关时,它会关闭并再次打开,但是如果您按下另一个开关,则会发生此“ Action ”,他们都“认为”应该打开。我如何确保始终只有 1 个开关打开?我不知道是否有办法在开关打开时再次按下,而不是关闭和打开,但只是不对 Action 做出“ react ”。即使有 ,它是否是一个可行的解决方案?

最佳答案

UISwitch 是您尝试执行的操作的错误控件。你应该使用 UISegmented控制。

关于objective-c - 在 iOS 上使用 UISwitches 作为单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492574/

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