我使用带有Image的自定义按钮。 通常,当我们点击按钮时,按钮的颜色已经改变。
当我点击该自定义按钮时,我想从自定义按钮更改图像。
我该如何改变?
感谢。
答案 0 :(得分:11)
假设这是一个标准的UIButton,您可以在初始化按钮时执行以下操作:
[btnObj setImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];
或背景图片:
[btnObj setBackgroundImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];
答案 1 :(得分:4)
首先创建一个按钮作为视图控制器的成员变量。我们称之为UIButton* myButton
。
然后像这样初始化按钮,并将其图像设置为您希望它最初显示的图像:
myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[myButton setImage:[UIImage imageNamed:@"OriginalImage"] forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(onClickMyButton) forControlEvents:UIControlEventTouchUpInside];
第三行将使其在单击按钮时调用函数“onClickMyButton”。那么你编写这个函数,它将把图像改为'NewImage':
-(void) onClickMyButton
{
[myButton setImage:[UIImage imageNamed:@"NewImage"] forState:UIControlStateNormal];
}
瞧!问题解决了:))
答案 2 :(得分:1)
您可以使用以下两种方法 - setBackgroundImage:forState: - setImage:forState:检查UIButton
答案 3 :(得分:0)
首先在故事板中使用“btYesAction”和“btNoAction”为按钮创建对象。
现在转到viewcontroller.m并粘贴以下代码
<pre>
(IBAction)btYesAction:(id)sender {
UIButton *button = (UIButton *)sender;
button.selected = !button.selected;
[button setImage:[UIImage imageNamed:@"NO1.png"]
forState:UIControlStateSelected];
答案 4 :(得分:0)
我这样做了:
某处,在我的Case ViewDidLoad中。 。 。
if(![[NSUserDefaults standardUserDefaults]boolForKey:@"volume_control"]){
[btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-up" backgroundColor:[UIColor clearColor] iconColor:clrPureBlueTint andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
}else{
[btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-off" backgroundColor:[UIColor clearColor] iconColor:[UIColor whiteColor] andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
}
然后点击Click Event
- (void)btnVolumeClicked : (UIButton *)sender{
if ([[NSUserDefaults standardUserDefaults]boolForKey:@"volume_control"]) {
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"volume_control"];
[[NSUserDefaults standardUserDefaults] synchronize];
}else{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"volume_control"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
[self selectedState];}
在SelectedState方法中:
-(void) selectedState{
if(![[NSUserDefaults standardUserDefaults]boolForKey:@"volume_control"]){
[btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-up" backgroundColor:[UIColor clearColor] iconColor:clrPureBlueTint andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
}else{
[btnVolume setImage:[UIImage imageWithIcon:@"fa-volume-off" backgroundColor:[UIColor clearColor] iconColor:[UIColor whiteColor] andSize:CGSizeMake(32, 32)] forState:UIControlStateNormal];
}}
我使用Font Awesome,但您可以简单地设置按钮图像Like This
[btnVolume setImage:[UIImage imageNamed:@"NO1.png"]
forState:UIControlStateSelected];
答案 5 :(得分:0)
Jose Rafael Santiago Jr.'s Answer
yourButton.setImage(UIImage(named: "imgName"), for: .normal)
或背景图片:
yourButton.setBackgroundImage(UIImage(named: "imgName"), for: .normal)