ios - ios中的多个单选按钮

标签 ios objective-c iphone

我有四种不同用途的 radio 。我为所有四个添加了相同的选择器。在选择器方法中,我已经为所有四种类型的单选按钮编写了代码。所以它增加了行数。那么编写相同代码的最佳方式是什么。

(void)checkBoxSelected:(id)sender{    
  switch ([sender tag]) {
    case 1:
        if([checkBoxDisel isSelected]==YES)
        {
            [checkBoxDisel setSelected:NO];
            [checkBoxPetrol setSelected:NO];
        }
        else{
            [checkBoxDisel setSelected:YES];
            [checkBoxPetrol setSelected:NO];
        }

        break;
    case 2:
        if([checkBoxPetrol isSelected]==YES)
        {
            [checkBoxPetrol setSelected:NO];
            [checkBoxDisel setSelected:NO];
        }
        else{
            [checkBoxPetrol setSelected:YES];
            [checkBoxDisel setSelected:NO];
        }
        break;
    case 3:
        if([checkBoxYes isSelected]==YES)
        {
            [checkBoxYes setSelected:NO];
            [checkBoxNo setSelected:NO];
        }
        else{
            [checkBoxYes setSelected:YES];
            [checkBoxNo setSelected:NO];
        }

        break;
    case 4:
        if([checkBoxNo isSelected]==YES)
        {
            [checkBoxNo setSelected:NO];
            [checkBoxYes setSelected:NO];
        }
        else{
            [checkBoxNo setSelected:YES];
            [checkBoxYes setSelected:NO];
        }
        break;
    case 5:
        if([checkBoxMale isSelected]==YES)
        {
            [checkBoxMale setSelected:NO];
            [checkBoxFemale setSelected:NO];
        }
        else{
            [checkBoxMale setSelected:YES];
            [checkBoxFemale setSelected:NO];
        }

        break;
    case 6:
        if([checkBoxFemale isSelected]==YES)
        {
            [checkBoxFemale setSelected:NO];
            [checkBoxMale setSelected:NO];
        }
        else{
            [checkBoxFemale setSelected:YES];
            [checkBoxMale setSelected:NO];
        }
        break;
    default:
        break;
  }
}

最佳答案

以下几行:

if([checkBoxYes isSelected]==YES)
{
    [checkBoxYes setSelected:NO];
    [checkBoxNo setSelected:NO];
}
else{
    [checkBoxYes setSelected:YES];
    [checkBoxNo setSelected:NO];
}

可以重写为

checkBoxYes.selected = !checkBoxYes.selected;
checkBoxNo.selected = NO;

对于巨大的 switch 中的每个 case 也是如此。

您是否考虑过使用分段控件?

关于ios - ios中的多个单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936056/

相关文章:

iphone - SearchBar TintColor 未应用正确

iphone - 如何从用户那里获取 10 条最新的推文作为字符串?

objective-c - MKAnnotation 删除(处理器重)

ios - 重构 ViewController 代码以将返回 UIImage 的方法移动到相关子类中

ios - 如何 "restart"应用程序ios

ios - 删除UITableViewCell并与Plist同步

objective-c - 为什么自定义 setter 的存在会破坏我的自定义 getter?

iphone - 如何让亚洲字体在 iPad 上工作?

iphone - 控制台错误 : failed to find PDF header: `%PDF' not found

ios - iPhone 不断发送 apple-site-association 请求