Как изменить цвет фона каждой кнопки в UIButton в iPhone?

Я создал кнопки, используя цикл, и установил свойства и синтезировал кнопки. Теперь я хочу изменить цвет кнопки в другом контроллере. Я устанавливаю значения тегов для каждой кнопки, и я могу правильно получить значения тегов в другом контроллере представления при выборе кнопок. Теперь я хочу изменить цвет фона для каждой кнопки.

Вот пример кода,

В CustomView.h

    UIButton *customBtn;
    property (nonatomic, strong) UIButton *customBtn;
    @synthesize customBtn;

В CustomView.m

for (int i=0; i<=[resultArray count]; i++)
{
     customBtn= [UIButton buttonWithType:UIButtonTypeCustom];
     customBtn = CGRectMake(X, 30, 20, 20); notsupport = [[UILabel alloc]initWithFrame:CGRectMake(25, 30, 290, 20)];
     [customBtn addTarget:customDelegate actionselector(MyAction:) forControlEvents:UIControlEventTouchUpInside];
     [self.view addSubview:customBtn];
     X = X + 30;

}

В контроллере View:

            viewController.customBtn.backgroundColor = [UIColor blackColor];

Он влияет на весь цвет фона кнопок, так как я могу изменить цвет фона для каждой кнопки. Если я создаю отдельный экземпляр для всех кнопок, и я могу изменить цвет фона для кнопок. Используя один экземпляр кнопок, как мы можем изменить цвет фона кнопки.

Пожалуйста, помогите мне.

Благодаря!

0
добавлено
Просмотры: 1
добавлено автор Pugal, источник

5 ответы

for (int i=0; i<=[resultArray count]; i++)
{
    customBtn= [UIButton buttonWithType:UIButtonTypeCustom];
    customBtn = CGRectMake(X, 30, 20, 20); notsupport = [[UILabel alloc]initWithFrame:CGRectMake(25, 30, 290, 20)];
    [customBtn addTarget:customDelegate actionselector(MyAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:customBtn];
    X = X + 30;
    customBtn.tag = i;

   [buttonAry addObject:customBtn];



}

По окончании цикла у вас будет n количество кнопок в buttonAry , и каждая кнопка будет иметь уникальный тег.

Вы можете прочитать этот массив в другом классе

 for (int i=0; i<=[buttonAry count]; i++)
{
   UIButton *button = [buttonAry objectAtIndex:i];

   UIColor *color =  [colorAry objectAtIndex:i];


  button.backgroundColor = [UIColor color];


}

В colorAry вы можете иметь разные цвета

1
добавлено
Вы проверили это
добавлено автор thavasidurai, источник

Используйте метод viewWithTag . например

UIButton * button = (UIButton *) [viewController.view viewWithTag: aTag];

0
добавлено

Либо следуйте за Anoop Vaidya, либо используйте NSNotification для отправки объекта кнопки в другой класс, он сохранит все свойства вашей кнопки.

0
добавлено

Либо вы можете сделать с viewWithTag .

Или вы можете создать массив IBOutlets , тогда ваша работа будет выполнена.

0
добавлено
for (int i=0; i<=[resultArray count]; i++)
{
   customBtn= [UIButton buttonWithType:UIButtonTypeCustom];
   customBtn = CGRectMake(X, 30, 20, 20); notsupport = [[UILabel alloc]initWithFrame:CGRectMake(25, 30, 290, 20)];
  [customBtn addTarget:customDelegate actionselector(MyAction:) forControlEvents:UIControlEventTouchUpInside];

  customBtn.tag = i;

  [self.view addSubview:customBtn];
  X = X + 30;

}

-(IBAction)MyAction:(id)sender{

  UIButton *btn = (UIButton *)sender;

  NSLog:(@"tag:%d"btn.tag);
 //here you find your specific button, 
}
0
добавлено