如何从颜色select器方法设置button的颜色?

我在for循环中生成了一些button,每个button都有自己的标签。 现在我想点击一个button并打开一个颜色select器并设置button的颜色。

我的问题是,当我打开颜色select器,并select一种颜色,它被设置在不同的button。 我想点击一个button,只select点击button的颜色。

我使用的代码是:

for(int i=0;i<=5;i++){ btnphoto=[[UIButton alloc]initWithFrame:CGRectMake(10,(30*i)+110,50,20)]; [btnphoto setTitle:@"Photo" forState:UIControlStateNormal]; [btnphoto setBackgroundColor:[UIColor redColor]]; [btnphoto addTarget:self action:@selector(buttonPressPickColor:) forControlEvents:UIControlEventTouchUpInside]; btnphoto.tag=100 + i; [self.view addSubview:btnphoto]; } -(IBAction)buttonPressPickColor:(UIButton*)sender { btnphoto.tag = sender.tag; NSLog(@"Btn photo Tag = %d",sender.tag); NEOColorPickerViewController *controller = [[NEOColorPickerViewController alloc] init]; controller.delegate = self; controller.selectedColor = self.currentColor; controller.title = @"Color Picker"; UINavigationController* navVC = [[UINavigationController alloc]initWithRootViewController:controller]; [self presentViewController:navVC animated:YES completion:nil]; } -(void)colorPickerViewController:(NEOColorPickerBaseViewController *)controller didSelectColor:(UIColor *)color { btnphoto.backgroundColor = color; /// Important Line [controller dismissViewControllerAnimated:YES completion:nil]; } 

最简单的事情是有一个实例variables/属性,并设置您select的button的标签,并使用该标签来获得正确的button实例…

例如:

在接口文件中:

 @property (nonatomic, weak) int selectedTag; 

下面是修改后的代码,可以帮助你进一步

 -(IBAction)buttonPressPickColor:(UIButton*)sender{ _selectedTag = sender.tag; NSLog(@"Btn photo Tag = %d",sender.tag); NEOColorPickerViewController *controller = [[NEOColorPickerViewController alloc] init]; controller.delegate = self; controller.selectedColor = self.currentColor; controller.title = @"Color Picker"; UINavigationController* navVC = [[UINavigationController alloc]initWithRootViewController:controller]; [self presentViewController:navVC animated:YES completion:nil]; } -(void)colorPickerViewController:(NEOColorPickerBaseViewController *)controller didSelectColor:(UIColor *)color { UIButton *selectedButton = (UIbutton *)[self.view viewWithTag:_selectedTag]; selectedButton.backgroundColor = color; /// Important Line [controller dismissViewControllerAnimated:YES completion:nil]; } 

希望这可以帮助…