iPad - установить текст для кнопки программно - PullRequest
2 голосов
/ 09 июля 2010

Я новичок в этом бизнесе iPad, и я создаю несколько кнопок внутри прокрутки программно на основе содержимого файла XML. У меня есть этот код для:

float x = (SLIDER_ELEMENT_HEIGHT * i) + 20;
CGRect frame = CGRectMake(x, 0, SLIDER_ELEMENT_WIDTH, SLIDER_ELEMENT_HEIGHT);
UIButton *button = [[UIButton alloc] initWithFrame:frame];

UIColor *bgColor = [[UIColor alloc] initWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
button.backgroundColor = bgColor;

NSString *titleForButton = [NSString stringWithFormat: @"This is my title"];
[button setTitle:titleForButton forState:(UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted)];

UIColor *fgColor = [[UIColor alloc] initWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];
[button setTitleColor:fgColor forState:(UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted)];

[button addTarget:self action:@selector(buttonMethod:) forControlEvents:(UIControlEvents)UIControlEventTouchDown];
[scrl_lastIssues addSubview:button];

Теперь слушатель метода, который я добавляю, работает нормально, но текст кнопки никогда не появляется ... что я делаю не так?

Ответы [ 4 ]

5 голосов
/ 09 июля 2010

Попробуйте изменить строку:

  [button setTitle:titleForButton forState:(UIControlStateNormal | UIControlStateApplication | UIControlStateHighlighted)];

до:

  [button setTitle:titleForButton forState:UIControlStateNormal];

параметр forState не работает так, как вы ожидали, он работает так:

  [button setTitle:@"Normal" forState:UIControlStateNormal];
  [button setTitle:@"Highlighted" forState:UIControlStateHighlighted];
1 голос
/ 03 октября 2014
[button setTitle:@"Return" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    [button setBackgroundColor:[UIColor orangeColor]];
1 голос
/ 09 июля 2010

Кроме того, если вы установите только текст UIControlStateNormal ... это будет текст для всех состояний элемента управления, которые вы разделяли с помощью побитового ИЛИ, что, как мне кажется, является функцией, которую вы ищете.

0 голосов
/ 09 июля 2010

И если вы хотите установить одинаковый заголовок для всех состояний, то сделайте следующее:

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