Ответ 1
В соответствии с documentation:
Это свойство недопустимо для всех типов кнопок.
Вам нужно переключить buttonType
на другой один из них. (К сожалению, в документации не указано, какие типы кнопок поддерживают это свойство.)
Моя цель сборки установлена для IOS5, где я понимаю, что UIButton.tintColor
был введен...
У меня это в моем представленииDidLoad для контроллера просмотра
[timelineButton setTintColor:[UIColor blackColor]];
[timelineButton setTitle:@"test" forState:UIControlStateNormal];
Текст изменяется правильно, но кнопка не черная?
Спасибо!
В соответствии с documentation:
Это свойство недопустимо для всех типов кнопок.
Вам нужно переключить buttonType
на другой один из них. (К сожалению, в документации не указано, какие типы кнопок поддерживают это свойство.)
Убедитесь, что для вашей кнопки "тип" задано значение "Система". Если он настроен на "Пользовательский", это может быть причиной того, что цвет вашей кнопки не меняется. Это то, что случилось со мной и изменило тип на Систему, зафиксировав его.
Отметьте выделенный цвет. Когда вы нажимаете/нажимаете на UIButton, цвет, указанный с помощью tintColor, отображается до тех пор, пока вы удерживаете нажатие/щелчок на UIButton.
resetButton.tintColor = [UIColor colorWithRed:0.764 green:1.000 blue:0.000 alpha:1.000];
Кнопка белого цвета в нормальном состоянии. Но если я нажимаю на кнопку, цвет становится красным, но только тогда.
ЕСЛИ вам нужно изменить кнопку, чтобы она выглядела как красная или синяя в UIControlStateNormal, а затем
Измените UIButtonType на UIButtonTypeCustom в интерфейсе Builder или программно с помощью
UIButton *resetButton = [UIButton buttonWithType:UIButtonTypeCustom];
Измените атрибуты самостоятельно и заново создайте закругленные углы.
resetButton.backgroundColor = [UIColor redColor];
resetButton.layer.borderColor = [UIColor blackColor].CGColor;
resetButton.layer.borderWidth = 0.5f;
resetButton.layer.cornerRadius = 10.0f;
Как указано в других ответах, оттенок не работает для типов пользовательских кнопок. Убедитесь, что вы явно объявляете тип кнопки. Не используйте [UIButton alloc] init]
Это будет работать:
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[mybutton setImage:[UIImage imageNamed:@"myImage"] forState:UIControlStateNormal];
mybutton.tintColor = [ODTheme blueTintColor];
Сегодня я также встречаю эту проблему. Я использую делегат для его решения.
[button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(buttonPressReset:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
-(void)buttonPress:(id)sender{
UIButton* button = (UIButton*)sender;
[button setBackgroundColor:[UIColor greenColor]];
NSLog(@"buttonPressed");
}
-(void)buttonPressReset:(id)sender{
UIButton* button = (UIButton*)sender;
[button setBackgroundColor:[UIColor redColor]];
NSLog(@"buttonPressReset");
}
Я нашел 3 вещи, которым нужно следовать.
1. Сделать изображение по Default
Перейдите на Images.xcassets > Your Image > Show the Attributes inspector > Render As > Default
2. Убедитесь, что ваш тип кнопки System
3. Теперь поменяйте кнопку tintColor.
Готово.
Попробуйте этот метод:
- (void)setTitleColor:(UIColor *)color
forState:(UIControlState)state
Просто установите UIButton
для ввода Система в Раскадровка.
И тогда в коде просто используйте:
myButton.tintColor = UIColor.whiteColor()
Чтобы изменить цвет текста кнопки, вы можете использовать:
resetButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
Или OBJ-C:
- (void)setTitleColor:(UIColor *)color
forState:(UIControlState)state
Если ваш тип UIButton является системным, тогда и только свойство цвета оттенка будет работать. Поэтому сначала вам нужно установить тип кнопки в системе, а затем применить цвет оттенка для определенного состояния.
let btn = UIButton.init(type: .system)
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
Просто используйте:
[yourButton setBackgroundImage:[yourButton.currentBackgroundImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
[yourButton setTintColor:[UIColor blackColor]];
Свифт 4:
yourButton.setTitleColor(UIColor.white, для:.normal)