0
我已經創建了12個按鈕動態月份,並且我爲按鈕設置了不同的圖像。所有按鈕都有標籤。我使用開關方法訪問每個帶有標籤的按鈕。選中時我改變了按鈕的圖像。但是,當選擇一個按鈕時,我無法將其他按鈕的圖像更改爲未選中。如何在選擇按鈕時更改多個按鈕的按鈕圖像?
這是我的代碼。
//Button Creation in scroll view
NSMutableArray* buttonArray = [[NSMutableArray alloc] init];
for(int i = 0; i < 12; i++)
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(0,5,37,37)];
[btn setTag:i];
[btn setImage:[UIImage imageNamed:[buttonImageArray objectAtIndex:i]] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(monthBtnAction:) forControlEvents:UIControlEventTouchUpInside];
[buttonArray addObject:btn];
[btn release];
}
menuScrollView.showsHorizontalScrollIndicator = FALSE;
menuScrollView.showsVerticalScrollIndicator = FALSE;
menuScrollView.scrollEnabled = YES;
menuScrollView.bounces = FALSE;
menuScrollView.delegate = self;
menuButtons = buttonArray;
float totalButtonWidth = 15;
for(int i = 0; i < [menuButtons count]; i++)
{
UIButton *btn1 = [menuButtons objectAtIndex:i];
CGRect btnRect = btn1.frame;
btnRect.origin.x = totalButtonWidth;
[btn1 setFrame:btnRect];
btn1.userInteractionEnabled=YES;
[menuScrollView addSubview:btn1];
totalButtonWidth += btn1.frame.size.width+25;
}
[menuScrollView setContentSize:CGSizeMake(totalButtonWidth, 45)];
[self.view addSubview:menuScrollView];
//Button Action Method
-(IBAction)monthBtnAction:(id)sender {
NSLog(@"Button Tag is : %i",[sender tag]);
switch ([sender tag]) {
case 0:
NSLog(@"Tag:%d January",[sender tag]);
flag0 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 1:
NSLog(@"Tag:%d Febraury",[sender tag]);
flag1 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 2:
NSLog(@"Tag:%d March",[sender tag]);
flag2 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 3:
NSLog(@"Tag:%d April",[sender tag]);
flag3 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 4:
NSLog(@"Tag:%d May",[sender tag]);
flag4 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 5:
NSLog(@"Tag:%d June",[sender tag]);
flag5 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 6:
NSLog(@"Tag:%d July",[sender tag]);
flag6 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 7:
NSLog(@"Tag:%d August",[sender tag]);
flag7 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 8:
NSLog(@"Tag:%d September",[sender tag]);
flag8 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 9:
NSLog(@"Tag:%d October",[sender tag]);
flag9 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 10:
NSLog(@"Tag:%d November",[sender tag]);
flag10 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
case 11:
NSLog(@"Tag:%d December",[sender tag]);
flag11 = YES;
theButton = (UIButton *)sender;
[theButton setImage:[UIImage imageNamed:[buttonSelectArray objectAtIndex:[sender tag]]] forState:UIControlStateNormal];
dateValue = [sender tag]+1;
NSLog(@"dateValue:%d",dateValue);
[self viewWillAppear:NO];
break;
}
}
它爲我工作。你的答案中有一個更正。在.h文件中它不是NSButton的UIButton。請糾正它。 – Manimaran
哦,是的。謝謝。我在OSX上工作,所以錯過了:)。現在更正。 – Neha
嗯,這個答案也幫助了我。謝謝 :) –