2014-09-02 4 views
0

Я рассмотрел все другие вопросы, касающиеся изменения цвета кнопок. Вот ситуация, у меня есть кнопка, которая при нажатии вызывает просмотр слайда. Перед тем, как нажать, изображение кнопки будет белым, после нажатия станет серым (это приемлемо), но при повторном нажатии, чтобы вернуться в исходное местоположение, изображение по-прежнему остается серым. Я хочу, чтобы он вернулся на белый цвет и попытался использовать UIControlStateNormal, Disabled и т. Д. Без успеха.Изображение UIButton становится серым при нажатии

[self.button setImage:[UIImage imageNamed:@"someImage"] forState:UIControlStateNormal]; 

Это изменение было изменено на все типы UIControl. в настоящее время он установлен как:

[self.menu setImage:[UIImage imageNamed:@"menu"] forState:UIControlStateNormal]; 
[self.menu setImage:[UIImage imageNamed:@"menu"] forState:UIControlStateSelected | UIControlStateHighlighted]; 

и все еще не повезло. Какие-либо предложения?

+0

Является ли это белым изображением, которое вы назвали @ «someImage», а серый - это изображение, называемое «меню»? Можете ли вы показать код в методе IBAction для нажатия кнопки? –

ответ

0

Это было нечто совершенно забытое. У меня был набор непрозрачности представления. так:

self.layer.opacity = .60; 

был проблемой. Как только я прокомментировал эту строку, кнопка работает как шарм. Спасибо за помощь Джим.

+0

Рад, что вы его отсортировали. Это всегда просто оплошности, которые, похоже, вызывают беспокойство. ура –

1

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

Что я имею в виду, если у вас есть кнопка, показывающая другое изображение, когда кнопка выбрана, вам нужно будет изменить состояние кнопки на выбранное. Чтобы вернуть изображение к исходному невыбранному изображению, вам нужно будет изменить состояние обратно на невыбранное. Например, предположим, что в вашем методе viewDidLoad у вас есть следующий код, чтобы объявить изображения для каждого из состояний кнопок:

//Set for normal state 
[self.button setImage:[UIImage imageNamed:@"normalImage.png"] forState:UIControlStateNormal]; 

//Set for selected state 
[self.button setImage:[UIImage imageNamed:@"selctedImage.png"] forState:UIControlStateSelected]; 

Теперь в вашем методе IBAction вы можете переключаться между состояниями

-(IBAction*)yourButtonIsPressed:(id)sender{ 

     if (!self.button.selected){ //This is checking button state 

     //The code will run in here if the button is in a normal, unselected state. This is where you have you method here to slide in view etc 

     //Now change the button to a selected state 
     self.button.selected = YES; 

     }else{ 
     //The code will now run in here if the button is already in a selected state and this is where you place your method to return the view etc 

     //Now set the button back to an unselected state 
     self.button.selected = NO; 
     } 
} 

Я надеюсь, что это поможет

Смежные вопросы