it-roy-ru.com

Цвет заголовка кнопки UIButton

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

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

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

159
Ali

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

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)
419
Amit Singh

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

enter image description here

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

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, потому что они просто доступны для краткого отображения выбора, а не для отображения самого выбора.

5
Alex Cio

в 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)
3
Prashant chaudhary