如何更改自定义按钮';在iOS中点击时的图像是什么?

如何更改自定义按钮';在iOS中点击时的图像是什么?,ios,button,Ios,Button,我使用自定义按钮与图像。 通常,当我们点击按钮时,按钮的颜色已经改变 当我点击那个自定义按钮时,我想从自定义按钮更改图像 我怎样才能改变它 谢谢。假设这是一个标准的UIButton,您可以在初始化按钮时执行以下操作: [btnObj setImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted]; 或对于背景图像: [btnObj setBackgroundImage:[UIImage image

我使用自定义按钮与图像。 通常,当我们点击按钮时,按钮的颜色已经改变

当我点击那个自定义按钮时,我想从自定义按钮更改图像

我怎样才能改变它


谢谢。

假设这是一个标准的UIButton,您可以在初始化按钮时执行以下操作:

[btnObj setImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];
或对于背景图像:

[btnObj setBackgroundImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];

您可以使用以下两种方法–setBackgroundImage:forState:
–setImage:forState:选中

首先创建一个按钮作为视图控制器的成员变量。让我们称之为
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];
}

瞧!问题已解决:)

首先为脚本中带有“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];

(iAction)bYesAction:(id)发件人{
UIButton*按钮=(UIButton*)发送器;
button.selected=!button.selected;
[按钮集图像:[UIImage ImageName:@“NO1.png”]
forState:uicontrol状态选择];
我是这样做的:

在某个地方,在我的情况下,ViewDidLoad

- (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];}
然后点击事件

-(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];
}}
在SelectedState方法中:

[btnVolume setImage:[UIImage imageNamed:@"NO1.png"]
    forState:UIControlStateSelected];
我使用的字体很棒,但你可以简单地像这样设置按钮图像

yourButton.setImage(UIImage(named: "imgName"), for: .normal)
在Swift 3中:

yourButton.setBackgroundImage(UIImage(named: "imgName"), for: .normal)
或对于背景图像:

[btnObj setBackgroundImage:[UIImage imageNamed:@"imgName.png"] forState:UIControlStateHighlighted];

感谢您的完整回答!我唯一能找到的永久更改按钮图像的解决方案。所有列出的故事板解决方案都不起作用,也不只是使用插座并为高亮显示和选定状态设置差异图像。