Не удается изменить фоновое изображение пользовательской кнопки uiButton для выбранного состояния - PullRequest
4 голосов
/ 27 апреля 2011

С моим кодом, приведенным ниже, кажется, что кнопка находится в нормальном состоянии все время (всегда зеленым), даже если я нажимаю на него.

UIButton *gumb = [UIButton buttonWithType:UIButtonTypeCustom];
     gumb.frame = CGRectMake(4, 40, 104, 37);
     gumb.tag=0;
    [gumb setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [gumb setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
    [gumb setBackgroundImage:[UIImage imageNamed:@"greenButton.png"] forState:UIControlStateNormal];
     [gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateSelected];

Если я установлю изображение для нормального состояния на whiteButton и для выбранногона greenButton кнопка всегда белая и никогда не зеленая.

Ответы [ 4 ]

4 голосов
/ 27 апреля 2011
[gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateHighlighted] 

используйте это вместо выбранного изображения

1 голос
/ 31 марта 2012

Я не уверен, что выбранное состояние используется только для кнопок вкладок, потому что я пытался, как DixieFlatline, и иногда делал изменения изображения кнопки.Но метод tt.Kilew определенно стоит попробовать.Просто попробуйте: [gumb setBackgroundImage: [UIImage imageNamed: @ "whiteButton.png"] forState: UIControlUIControlStateHighlighted];и изображение кнопки будет изменено при нажатии.

0 голосов
/ 07 января 2014

Код для настройки выбранного состояния изображения:

[_button setImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateHighlighted];

Код для настройки изображения в нормальном состоянии:

[_button setImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateNormal];
0 голосов
/ 27 апреля 2011

Вы устанавливаете состояние кнопки как selected в действии нажатия кнопки

- (IBAction)buttonClicked:(id)sender;
{
UIButton *button = (UIButton *)sender;
if(button.tag == 0)// in your case
{
button.selected = YES;
}
// Do something
}

Надеюсь, это поможет

...