Цвет заголовка кнопки UIButton - PullRequest
159 голосов
/ 15 июля 2011

Я устанавливаю цвет текста для UIButton

headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0 
                                                     green:71/255.0 
                                                      blue:113/255.0 
                                                     alpha:1.0];

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

Ответы [ 3 ]

421 голосов
/ 15 июля 2011

использование

Objective-C

[headingButton setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

Swift

headingButton.setTitleColor(.black, for: .normal)
5 голосов
/ 08 мая 2015

Я создал пользовательский класс MyButton , расширенный с UIButton.Затем добавили это в Identity Inspector:

enter image description here

. После этого измените тип кнопки на Пользов. :

enter image description here

Затем вы можете установить атрибуты, такие как textColor и UIFont для вашего UIButton для различных состояний:

enter image description here

Затем я также создал два метода внутриMyButton класс, который я должен вызывать внутри своего кода, когда я хочу, чтобы UIButton отображался как выделенный:

- (void)changeColorAsUnselection{
    [self setTitleColor:[UIColor colorFromHexString:acColorGreyDark] 
               forState:UIControlStateNormal & 
                        UIControlStateSelected & 
                        UIControlStateHighlighted];
}

- (void)changeColorAsSelection{
    [self setTitleColor:[UIColor colorFromHexString:acColorYellow] 
               forState:UIControlStateNormal & 
                        UIControlStateHighlighted & 
                        UIControlStateSelected];
}

Вы должны установить titleColor для обычного, выделите и выберите UIControlState потому что в соответствии с документацией UIControlState может быть более одного состояния одновременно.Если вы не создадите эти методы, UIButton будет отображать выделение или выделение, но они не останутся в UIColor, установленном вами внутри UIInterface Builder, потому что они просто доступны для краткого отображения выделения, а недля отображения самого выбора.

3 голосов
/ 29 февраля 2016

В Swift:

Изменение цвета текста надписи совершенно отличается от его изменения для UIButton.Чтобы изменить цвет текста для UIButton, используйте этот метод:

self.headingButton.setTitleColor(UIColor(red: 107.0/255.0, green: 199.0/255.0, blue: 217.0/255.0), forState: UIControlState.Normal)
...