Странная проблема с UIControlStateHighlighted - PullRequest
0 голосов
/ 19 сентября 2011

У меня странная проблема с UIButton. Я установил фоновое изображение для состояния UIControlStateHighlighted, но фоновое изображение не меняется, я нажимаю на него. Цель / селектор по-прежнему вызывается, НО, если я удаляю цель / селектор, то он работает просто отлично.

Вот мой код:

  UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(currentXPos, 0, minWidth + additionalSpacing, self.bounds.size.height)];
    [button setBackgroundImage:[UIImage imageNamed:@"cellBackgroud.png"] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:@"cellBackgroudSelected.png"] forState:UIControlStateHighlighted];
    [button setTitle:text forState:UIControlStateNormal];
    [button setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];
    [[button titleLabel] setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14]];
    [button setTag:i];
    [button addTarget:delegate action:@selector(topCellPressed:) forControlEvents:UIControlStateHighlighted];
    [self addSubview:button];

Я застрял на этом некоторое время, поэтому любая помощь будет оценена ... Спасибо!

1 Ответ

1 голос
/ 19 сентября 2011

Вы используете неправильный тип для вашего целевого назначения.Вы хотите UIControlEvent, а не UIControlState.В настоящее время вы устанавливаете свою кнопку на мусор, так как состояние управления - это совсем другая битовая маска для управления событием.

Номинально для нужного нажатия кнопки UIControlEventTouchUpInside

[button addTarget:delegate action:@selector(topCellPressed:) forControlEvents:UIControlEventTouchUpInside];

Я удивлен, что компилятор не предупредил вас об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...