我有称为卡的UIButton实例。我有一个名为“Representer”的对象,它有一个属性“image”,它是一个UIImage。我试图在运行时更改按钮图像的值。我在界面构建器中有按钮,并且还使用按钮声明了IBOutlet。我写这段代码:
UIButton *card1 = [[UIButton alloc] init];
[card1 setImage:representer.image forState:UIControlStateNormal];
编译此代码时,按钮的图像不会改变。请帮帮我!
答案 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中正确连接。以下是它的外观:
此外,您需要在按钮的图像中与按钮的背景图像保持一致。他们是两个不同的东西。如果您在Interface Builder中指定了“图像”,那么在代码中执行相同操作,反之亦然,使用backgroundImage。
答案 1 :(得分:0)
在要更改图像的行处设置断点,并确保cardOne不是nil。 (或使用NSLog语句。)断开的出口链接是代码无法按预期工作的常见原因。