UIButton图像在灰色按下
问题描述:
我已经通过了所有其他有关按钮颜色变化的问题。这是情况,我有一个按钮,当按下时导致视图滑出。在按按钮的图像为白色之前,一旦按下灰色(这是可以接受的),但再次按下以返回到原始位置时,图像仍为灰色。我想它回到白色,并尝试使用UIControlStateNormal,禁用等没有成功。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];
仍然没有运气。有什么建议么?
答
这是完全被忽视的东西。我有不透明度设置。所以:
self.layer.opacity = .60;
是问题所在。一旦我评论了该线条,该按钮就像一个魅力。感谢Jim的帮助。
+0
很高兴你把它分类。这总是简单的疏忽似乎引起麻烦。干杯 – 2014-09-02 21:36:24
答
您显示的代码只是声明哪个图像的按钮将取决于不同的状态,但是您还需要物理更改按钮的状态,以便这些图像可以用于每个状态。
我的意思是,如果您在显示按钮时显示不同图像的按钮被选中,您需要将按钮状态更改为选定状态。要将图像返回到原始未选图像,您需要将状态更改回未选中状态。例如,让我们的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;
}
}
我希望这可以帮助
白色图像是您命名为@“someImage”的图像,灰色图像是名为@“menu”的图像?你可以在按钮按下时在IBAction方法中显示代码吗? – 2014-09-02 21:13:23