如何在单击一个按钮时取消选择另外两个按钮.我可以通过单击它来更改按钮的图像.我已经从IB创建了三个按钮.他们的ibaction如下:
- (IBAction)todaybuttonClicked:(id)sender
{
todayButton.tag=0;
NSLog(@"hi todaybuttonClicked");
if ([sender isSelected]) {
[todayButton setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[sender setSelected:NO];
}
else{
[sender setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateNormal];
[sender setSelected:YES];
}
[self todayOffersSegmentSelected];
}
- (IBAction)tomorrowbuttonClicked:(id)sender
{
tomorrowButton.tag=1;
NSLog(@"hi tomorrowbuttonClicked");
if ([sender isSelected]) {
[tomorrowButton setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[sender setSelected:NO];
}
else{
[sender setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
[sender setSelected:YES];
}
[self tomorrowOffersSegmentSelected];
}
- (IBAction)restoftheweekbuttonClicked:(id)sender
{
restoftheweekButton.tag=2;
NSLog(@"hi restoftheweekbuttonClicked");
if ([sender isSelected])
{
[restoftheweekButton setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[sender setSelected:NO];
}
else{
[sender setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];
[sender setSelected:YES];
}
[self restOfWeekOffersSegmentSelected];
}
Run Code Online (Sandbox Code Playgroud)
任何建议?谢谢
小智 5
在viewDidLoad中,您可以使用按钮初始化_days数组:
_daysArray =[[[NSArray alloc]initWithObjects:self.sunday,self.monday,self.tuesday,self.wednesday,self.thursday,self.friday,self.saturday nil]retain];
Run Code Online (Sandbox Code Playgroud)
如果您使用IB创建按钮,只需将它们全部指向您班级中的同一IBAction:
-(IBAction)changeSelectedDay:(id)sender
{
for (UIButton *button in _buttonsArray) {
[button setSelected:([button isEqual:sender])?YES:NO];
}
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,这种方法更清洁.
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |