我已经创建了无线电和复选框按钮编程根据我的网络服务响应,其中按钮的数量变化。iOS:如何处理用一个iBAction动态创建的多个按钮?
以下是代码来创建这些按钮:
for(int j = 0; j < nintOptionCount; j++)
{
UILabel * lblOption = [[UILabel alloc] initWithFrame: CGRectMake(50, yLabel, 250, 21)];
//lblOption.backgroundColor = [UIColor yellowColor];
lblOption.text = [arrmOptionName objectAtIndex:j];
lblOption.textColor = [UIColor blackColor];
lblOption.font = [UIFont systemFontOfSize:14.0f];
[viewDetail addSubview:lblOption];
intOptionId = [[arrmOptionId objectAtIndex:j] intValue];
if (intEventChoice == 1)
{
btnRadio = [[UIButton alloc]initWithFrame:CGRectMake(5, yLabel, 22, 22)];
[btnRadio addTarget:self action:@selector(radioButtonPress:) forControlEvents:UIControlEventTouchUpInside];
[btnRadio setImage:[UIImage imageNamed:@"btn_radio.png"] forState:UIControlStateNormal];
[btnRadio setTag:intOptionId];
[btnRadio setTitle:[NSString stringWithFormat:@"radio%d%d",intOptionId,intParamId] forState:UIControlStateNormal];
[viewDetail addSubview:btnRadio];
}
else
{
btnCheckBox = [[UIButton alloc]initWithFrame:CGRectMake(5, yLabel, 22, 22)];
[btnCheckBox setImage:[UIImage imageNamed:@"btn_checkbox.png"] forState:UIControlStateNormal];
[btnCheckBox addTarget:self action:@selector(checkBoxButtonPress:) forControlEvents:UIControlEventTouchUpInside];
[btnCheckBox setTag:intOptionId];
[btnCheckBox setTitle:[NSString stringWithFormat:@"check%d,%d",intOptionId,intParamId] forState:UIControlStateNormal];
[viewDetail addSubview:btnCheckBox];
}
yLabel = yLabel+ 21+10;
}
所以,我的问题是如何在这里以编程方式创建按钮,这些按钮处理措施?以及如何处理按钮的选择和取消选择,因为这些按钮像单选按钮和复选框按钮一样工作。 如果我选择了一个单选按钮,则需要取消选择其他选项,如果是复选框,则需要管理复选框的选择和取消选择。
我已经尝试将按钮设置为按钮,但它不能像我期望的那样正常工作。
请给我提供一些解决方案。 在此先感谢。
一种选择是制作一个包含所有按钮的数组,给它们标签。现在,当选择一个按钮时,循环访问数组并取消选择所有其他按钮用于单选按钮大小写。 –
@Bhagyashreemahajan为每个按钮分配标签。并从标签中轻松找到您点击的是哪一个。 –
@Bhumit是否能够为您的解决方案提供一些示例代码,以便我对此有清晰的认识。 –