我已經創建了無線電和複選框按鈕編程根據我的網絡服務響應,其中按鈕的數量變化。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是否能夠爲您的解決方案提供一些示例代碼,以便我對此有清晰的認識。 –