Изменить цвет кнопок UI после того, как он был создан - PullRequest
0 голосов
/ 13 сентября 2011

Я создал серию кнопок и добавил их в представление, я надеялся, что смогу как-то получить доступ к этим кнопкам и изменить их внешний вид.

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

  for(UIView *v in [self.view subviews]) {
        if ([v isKindOfClass:[UIButton class]]) {
            if (buttonTag == [v tag]) {
                v.backgroundColor = [UIColor redColor];
            }
        }
    }

и

 for (int i = 0; i < [[self.view subviews] count]; i++) {
        if ([[self.view.subviews objectAtIndex:i] class] == [UIButton class]) {
            NSLog(@"Tags : %i", [[self.view.subviews objectAtIndex:i] tag]);
            if (buttonTag == [[self.view.subviews objectAtIndex:i] tag]) {

                [[self.view.subviews objectAtIndex:i] setBackgroundColor:[UIColor redColor]];
            }
        }
    }

Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2011

Вы можете использовать либо:

  1. Вы можете установить выбранное свойство, например

    if (myButtton.selected = YES) { myButton.backgroundColor = [UIColor redColor]; } Также выделенные свойства доступны как myBUtton.highlighted = YES;

OR

  1. Вы можете установить фоновое изображение или цвет фона следующим образом: [myButton setBackgroundImage: [UIImage imagedNamed: strechableImage] forState: UIControlStateTouchUpInside];

    или для нормального состояния как: [myButton setBackgroundImage: [UIImage imagedNamed: strechableImage] forState: UIControlStateNormal];

0 голосов
/ 13 сентября 2011

Я могу сказать, что ваша первая версия кода работает для меня, при условии, что значение buttonTag верное.

Для отладки я предлагаю вам закомментировать сравнение buttonTag и просто повернуть все свои кнопки красным.

Возможно, ваша кнопка находится не на верхнем уровне иерархии UIView. Это может быть встроено в подпредставление. Если это так, вы можете поместить свой цикл в рекурсивную функцию.

Или, возможно, ваш UIButton backgroundColor покраснел, и вы просто его не видите. Внутренняя часть кнопки с закругленными углами останется белой; только области вне закругленных углов будут отображаться красным цветом. Кнопка с фоновым изображением также может закрывать любой красный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...