我在IB中设置了一个UIButton(自定义,带有图像),这是我代码中的IBOutlet。
在viewController中的viewDidLoad方法中,我试图更改UIButton的现有图像
UIImage *newbuttonimage = [UIImage imageNamed:@"newbuttonimage.png"];
testbutton.imageView.image = newbuttonimage;
好的,这在启动应用程序时有效,但无论何时与按钮交互(按下它),它都会更改为原始图像(在IB中设置)。在整个项目中没有其他代码可以更改图像,所以发生了什么?
顺便说一句,当我将上述代码放在项目的任何其他部分时,它不会改变图像。
答案 0 :(得分:9)
您应该尝试使用setImage:forState
而不是直接指定图像; UIButton有多种状态,如果设置不当,可能会产生不需要的行为(类似于你所看到的行为)。
答案 1 :(得分:0)
卫生署!我应该使用这个代码:
UIImage *newbuttonimage = [UIImage imageNamed:@"newbuttonimage.png"];
[testbutton setImage:newbuttonimage forState:UIControlStateNormal];