单击其他按钮时更改 UIButton 的图像



在你潜入之前... 默认情况下,控件状态设置为"正常",并设置了图像

当用户单击按钮时,它会更改按钮的图像,因为我将该按钮的目标设置为与所需的方法相对应。我需要更改所有其他单选按钮的图像,当 -(void)RADIOBUTTONAClicked: 被调用

-(void)RadioButtonACLicked:{
//code to change radioButton A, the code i have works 
// Code to change all other buttons does not work. 
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{ .... 配置单元...

....
//-------------Creation of Custom Buttons-------------// 
//----RadioButtonA----//
....
[radioButtonA addTarget:self action:@selector(radioButtonAClicked:)forControlEvents:UIControlEventTouchUpInside];
 [radioButtonA setImage:img2 forState:UIControlStateNormal];

按钮 B 创建

radioButtonB = [UIButton buttonWithType:UIButtonTypeCustom];
[radioButtonB addTarget:self action:@selector(radioButtonBClicked:)forControlEvents:UIControlEventTouchUpInside];
[radioButtonB setImage:img2 forState:UIControlStateNormal]; 

因此,当单击单选按钮时,我需要将所有其他按钮图像设置为相反。

花了我一段时间让它工作

(void)radioButtonClicked:(UIButton *)sender
{
...
// Sets the UIImage for the custom RadioButtons. 
//img refers to radioOn and img2 refers to radioOff.
// uses an if esle conditional block inorder to correctly change the Images if teh conditions are met.
for(int i=0;i<[self.radioButtons count];i++){
    if ([[self.radioButtons objectAtIndex:i]tag] == sender.tag) {
    [[self.radioButtons objectAtIndex:i] setImage:img2 forState:UIControlStateNormal];
}
[sender setImage:img forState:UIControlStateNormal];
}

执行以下操作

//When creating the button, set their tags
radioButtonA = [UIButton buttonWithType:UIButtonTypeCustom];
//Add this line
radioButtonA.tag = 111;
radioButtonB = [UIButton buttonWithType:UIButtonTypeCustom];
//Add this line
radioButtonB.tag = 112;

现在在

-(void)RadioButtonACLicked:{
   //code to change radioButton A, the code i have works 
   //Code to change all other buttons does not work. 
   radioButtonA = [self.view viewWithTag:111];
   radioButtonB = [self.view viewWithTag:112];
   //Change the images for radioButton A and B as you wish
}

最新更新