我有四种不同用途的 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/