UIButton 选中状态改变图片

UIButton selected state change image

我知道这应该很简单,但由于我确实在这里和 google 上四处看了看,但没有让我的代码正常工作,所以我会问。是的,我已经查看了相关问题,但它们不起作用...

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

这是我的头文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

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

@end

还有我的实现文件:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

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

}
@end

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

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

为什么不尝试将背景图片默认设置为 "normal.png";

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

并在执行按钮时切换到"selected.png"。

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

您需要在界面生成器中为每个状态设置图像,如果需要,您不需要添加代码:

Select State ConfigDefault 然后选择一张图片

Select State ConfigSelected 然后选择一张图片

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

您可以对背景图像执行相同的操作,只需 select 参数 "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 构建器中更改为您需要的任何图像,并向该按钮添加一个操作,并在其中添加这行代码,如@Aladin 所述。

   @IBAction func btnPressed (_ sender: UIButton) {

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

}