【问题标题】:How to set colour on a button from colour picker methods?如何通过颜色选择器方法在按钮上设置颜色?
【发布时间】:2013-12-08 10:50:44
【问题描述】:

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

我的问题是,当我打开颜色选择器并选择一种颜色时,它会设置在不同的按钮上。我想点击一个按钮并只为点击的按钮选择颜色。

我使用的代码是:

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];
}

【问题讨论】:

  • 请有人回答这个问题
  • 对您自己的问题发表评论并要求他人回答不会添加任何信息。我们知道您希望问题得到解答。不然你为什么会一开始就问它?
  • 也许你可以解释/推理一下代码中的“重要行”。
  • 因为从那一行按钮有颜色..

标签: ios iphone objective-c ipad ios7


【解决方案1】:

最简单的方法是拥有一个实例变量/属性并将您选择的按钮的标签设置为它并使用该标签来获取正确的按钮实例......

例如:

在接口文件中:

@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]; }

希望这会有所帮助...

【讨论】:

  • @property (nonatomic, weak) int _selectedTag ;我在这一行遇到错误
  • 谢谢Prabh。非常感谢..你解决了我的问题。/..我在过去两天遇到了这个问题 ////
猜你喜欢
  • 1970-01-01
  • 2020-11-27
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 2015-03-01
  • 1970-01-01
  • 2012-05-30
相关资源
最近更新 更多