在运行时更改UIButton的图像

时间:2012-05-15 01:59:47

标签: iphone objective-c xcode object

我有称为卡的UIButton实例。我有一个名为“Representer”的对象,它有一个属性“image”,它是一个UIImage。我试图在运行时更改按钮图像的值。我在界面构建器中有按钮,并且还使用按钮声明了IBOutlet。我写这段代码:

UIButton *card1 = [[UIButton alloc] init]; 
[card1 setImage:representer.image forState:UIControlStateNormal]; 

编译此代码时,按钮的图像不会改变。请帮帮我!

2 个答案:

答案 0 :(得分:3)

首先需要确保您的按钮已连接到Interface Builder中的IBOutlet,是否已使用Connections Inspector完成此操作?

如果您的.h中的按钮为:

@property (nonatomic, retain) IBOutlet UIButton *option1Button;

然后,在.m文件中,调用

[option1Button setImage:representer.image forState:UIControlStateNormal];

在您的代码中,您只是实例化另一个UIButton并在其上设置图像。这是很好的代码,但与xib中的按钮无关。

这绝对假设IBOutlet在Interface Builder中正确连接。以下是它的外观:

enter image description here

此外,您需要在按钮的图像中与按钮的背景图像保持一致。他们是两个不同的东西。如果您在Interface Builder中指定了“图像”,那么在代码中执行相同操作,反之亦然,使用backgroundImage。

答案 1 :(得分:0)

在要更改图像的行处设置断点,并确保cardOne不是nil。 (或使用NSLog语句。)断开的出口链接是代码无法按预期工作的常见原因。