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
}