Как установить цвет текста надписи кнопок для состояния UIControlStateHighlighted - PullRequest
8 голосов
/ 18 октября 2011

Я создаю приложение для iPhone, в котором у меня есть пользовательская кнопка. Я установил заголовок кнопки, создав метку и добавив ее в качестве подпредставления. Теперь, когда кнопка подсвечена, я хочу изменить цвет текста надписей.

вот мой код,

UIButton *button1= [UIButton buttonWithType:UIButtonTypeCustom];
    [button1 setFrame:CGRectMake(68,162, 635, 101)];    
    [button1 setImage:[UIImage imageNamed:@"startwithouttext.png"] forState:UIControlStateNormal];
    [button1 setImage:[UIImage imageNamed:@"startactivewithouttext.png"] forState:UIControlStateHighlighted];

   UILabel *buttonLabel = [[UILabel alloc]  initWithFrame:CGRectMake(button1.bounds.origin.x+50, button1.bounds.origin.y+20, button1.bounds.size.width-100, button1.bounds.size.height-40)];

    [buttonLabel setFont:[UIFont fontWithName:@"Helvetica" size:28]];
    buttonLabel.backgroundColor=[UIColor clearColor];
    buttonLabel.textColor=[UIColor colorWithRed:83.0/255.0 green:83.0/255.0 blue:83.0/255.0 alpha:1.0];
    buttonLabel.highlightedTextColor=[UIColor whiteColor];
    buttonLabel.text = @"Long text string";
    [button1 addSubview:buttonLabel];
    [button1 bringSubviewToFront:buttonLabel];
    [button1 setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];
    [button1 setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
    [button1 addTarget:self action:@selector(button1clicked:) forControlEvents:

[mainView button1];   

Может ли какое-либо тело помочь мне изменить цвет текста, когда кнопка подсвечена?

Ответы [ 3 ]

22 голосов
/ 11 апреля 2012

Нашел ответ в другом вопросе о StackOverflow: Проблемы с цветом UIButton

[button1 setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];

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

10 голосов
/ 18 октября 2011

Вы можете добавить цель для UIControlStateHighlighted состояния UIButton как

[button1 addTarget:self action:@selector(buttonHighlighted:) forControlEvents:UIControlStateHighlighted];

и в методе buttonHighlighted вы можете изменить цвет текста вашей метки

- (void) buttonHighlighted:(id)sender
{
  //code here
}

Надеюсь, это даст вам представление.

1 голос
/ 10 июня 2015

Для выбранного цвета

[yourButton setTitleColor:[UIColor purpleColor] forState:UIControlStateSelected];

Для выделения цвета

[yourButton setTitleColor:[UIColor orangeColor] forState:UIControlStateHighlighted];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...