UIButton title color change on highlight - How to turn it off?
ios, textcolor, title, uibutton
Solution
you can use
[UIButton setTitleColor:forState:]
for all the states , then title color will remain same for all states.
[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
Note:To avoide type or paste above code three times you can use following code suggested by Will,
[button setTitleColor:[UIColor redColor] forState:(UIControlStateHighlighted | UIControlStateNormal | UIControlStateSelected)];
Problem
I have created a button. The title's color is black by default. But when I press it, the color changes to be a little blue and never changes back again, how does this happen? Can anyone tell me why? And I want the button's title remain black all the time. How can I do that? I have tried ``` [button setTitleColor:[UIColor darkTextColor] forState:UIControlStateHighlighted]; [button setTitleColor:[UIColor darkTextColor] forState:UIControlStateSelected]; ``` But There is no effect. When I add this in my code, it seems the button's title always blue. Code as follows. ``` UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setFrame:CGRectMake(20, 360, 280, 44)]; [button setTitle:NSLocalizedString(@"Continue", @"Label: TextLabel in Continue button") forState:UIControlStateNormal]; button.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f]; button.titleLabel.textColor = [UIColor darkTextColor]; button.titleLabel.shadowColor = [UIColor blackColor]; button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth; [self.view addSubview:button]; [button release]; ``` Thanks everyone. I have sloved the problem. I think the root cause is ``` button.titleLabel.textColor = [UIColor darkTextColor]; ``` When I remove this, and use ``` button setTitleColor:(UIColor) forState:(UIControlState); ``` The problem is solved!