Ответ 1
использование
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)
Я устанавливаю цвет текста для UIButton
headingButton.titleLabel.textColor = [UIColor colorWithRed:36/255.0
green:71/255.0
blue:113/255.0
alpha:1.0];
Не меняет цвет тот же самый код, который я использую в другом коде, который он работает.
использование
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)
Я создал пользовательский класс MyButton, расширенный от UIButton
. Затем добавьте это внутри Identity Inspector
:
После этого измените тип кнопки на Пользовательский:
Затем вы можете установить атрибуты типа textColor
и UIFont
для своего UIButton
для разных состояний:
Затем я также создал два метода внутри класса 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
, потому что они просто доступны для краткого отображения выделения, а не для отображения самого выбора.
В 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)