Ios UIButton选定状态更改图像

Ios UIButton选定状态更改图像,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我知道这应该是非常简单的,但因为我真的在这里和谷歌上到处看看,没有让我的代码工作,我会问。是的,我已经检查了相关问题,但它们不起作用 我只是想改变按钮按下时的图像 这是我的头文件: #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (strong, nonatomic) IBOutlet UIButton *myButton; @end 该按钮是在Main.storyB

我知道这应该是非常简单的,但因为我真的在这里和谷歌上到处看看,没有让我的代码工作,我会问。是的,我已经检查了相关问题,但它们不起作用

我只是想改变按钮按下时的图像

这是我的头文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIButton *myButton;

@end
该按钮是在Main.storyBoard中构建和连接的,我也曾尝试在属性检查器中执行此操作,但两种方法都不起作用


请注意,我不是在寻找如何做高亮显示状态,而是选择了。

为什么不尝试将背景图像默认设置为“normal.png”

并在执行该按钮时切换到“selected.png”

[self.mybutton setBackgroundImage:[UIImage imageNamed:@"selected.png"]];

您需要从interface builder中为每个状态设置映像,如果需要,无需添加代码:

选择
状态配置
默认值
,然后选择图像

选择
状态配置
所选
,然后选择图像

现在要测试按钮的每个状态:


您可以对背景图像执行相同的操作,只需选择参数
“background”

单击按钮时,您有什么方法吗?如果是,请在下面的行中填写:

[self.myButton setSelected:YES];
[self.myButton setImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateSelected];

我相信你需要做的是在点击按钮时将按钮的状态设置为选中。可能是这样的:

-(IBAction)buttonTapped:(id)sender {
    if(self.myButton.selected)
        [self.mybytton setSelected:NO];
    else
        [self.mybutton setSelected:YES];
}

在状态配置中的IB builder中更改为所需的任何图像,并向该按钮添加操作,然后在该按钮中添加这行代码,如@Aladin所述

   @IBAction func btnPressed (_ sender: UIButton) {

    // If you want to change it for selected state when tapped. 
    sender.isSelected = !sender.isSelected

}

请尝试不带“.png”的图像名称,并检查该图像是否确实存在。我已尝试删除“.png”,并且由于该图像在“正常状态”下工作,因此它应在选定状态下工作。要在添加图像后测试并尝试添加代码:
self.myButton.selected=YES不,没有工作:)我已经检查过了,谢谢。但是当选择状态时,它没有更改图像…错误:没有可见的@interface for'UIButton'声明选择器'setBackgroundImage:'您是否尝试设置背景图像而不是图像是的,我已经尝试了interface builder中我知道的所有选项。。。包括这一个是的,我可以测试按钮是否进入选择模式,图像是否改变-是的,它在Interface builder中改变,但当运行应用程序并按下按钮时,它的行为就像“突出显示”而不是“选中”…我不知道为什么还没有人投票支持这个答案!感谢@Aladin提供了如此简单的解决方案,而不是从按下的代码
-(iAction)按钮设置每个图像:(id)发送者{[self.toggleChange setSelected:YES];[self.toggleChange setImage:[UIImage imageNamed:@“info-22.png”]forState:UIControlStateSelected];}
不起作用
-(IBAction)buttonTapped:(id)sender {
    if(self.myButton.selected)
        [self.mybytton setSelected:NO];
    else
        [self.mybutton setSelected:YES];
}
   @IBAction func btnPressed (_ sender: UIButton) {

    // If you want to change it for selected state when tapped. 
    sender.isSelected = !sender.isSelected

}