UIButton选择了状态变化图像

时间:2015-07-15 13:37:28

标签: ios objective-c uibutton

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

我只想在按下按钮时更改按钮的图像。

这是我的头文件:

#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中构建和连接的,我也尝试在属性检查器中进行,但两种方式都没有用!

enter image description here

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

3 个答案:

答案 0 :(得分:6)

您需要从界面构建器设置每个州的图像,如果需要,您无需添加代码:

选择State ConfigDefault,然后选择图片

Default state

选择State ConfigSelected,然后选择图片

Selected

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

button states

您可以对背景图片执行相同操作,只需选择参数"Background"

即可

答案 1 :(得分:1)

在状态配置中更改为IB构建器中所需的任何图像,并向该按钮添加操作,并在其中添加@Aladin所述的此行代码。

   @IBAction func btnPressed (_ sender: UIButton) {

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

}

答案 2 :(得分:0)

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

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

执行按钮时切换到“selected.png”。

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