Подтвердить что ты не робот

Почему мой UIButton.tintColor не работает?

Моя цель сборки установлена ​​для IOS5, где я понимаю, что UIButton.tintColor был введен...

У меня это в моем представленииDidLoad для контроллера просмотра

[timelineButton setTintColor:[UIColor blackColor]];
[timelineButton setTitle:@"test" forState:UIControlStateNormal];

Текст изменяется правильно, но кнопка не черная?

Спасибо!

4b9b3361

Ответ 1

В соответствии с documentation:

Это свойство недопустимо для всех типов кнопок.

Вам нужно переключить buttonType на другой один из них. (К сожалению, в документации не указано, какие типы кнопок поддерживают это свойство.)

Ответ 2

Убедитесь, что для вашей кнопки "тип" задано значение "Система". Если он настроен на "Пользовательский", это может быть причиной того, что цвет вашей кнопки не меняется. Это то, что случилось со мной и изменило тип на Систему, зафиксировав его.

Ответ 3

Отметьте выделенный цвет. Когда вы нажимаете/нажимаете на 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;

Ответ 4

Как указано в других ответах, оттенок не работает для типов пользовательских кнопок. Убедитесь, что вы явно объявляете тип кнопки. Не используйте [UIButton alloc] init]

Это будет работать:

UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[mybutton setImage:[UIImage imageNamed:@"myImage"] forState:UIControlStateNormal];
mybutton.tintColor = [ODTheme blueTintColor];

Ответ 5

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

[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");
}

Ответ 6

Я нашел 3 вещи, которым нужно следовать.

1. Сделать изображение по Default

Перейдите на Images.xcassets > Your Image > Show the Attributes inspector > Render As > Default

render as default

2. Убедитесь, что ваш тип кнопки System

3. Теперь поменяйте кнопку tintColor.

Готово.

Ответ 7

Попробуйте этот метод:

- (void)setTitleColor:(UIColor *)color
             forState:(UIControlState)state

Ответ 8

Просто установите UIButton для ввода Система в Раскадровка.

введите описание изображения здесь

И тогда в коде просто используйте:

myButton.tintColor = UIColor.whiteColor()

Ответ 10

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

let btn = UIButton.init(type: .system)
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

Ответ 11

Просто используйте:

[yourButton setBackgroundImage:[yourButton.currentBackgroundImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal]; 
[yourButton setTintColor:[UIColor blackColor]];

Ответ 12

Свифт 4:

yourButton.setTitleColor(UIColor.white, для:.normal)