Ios UIButton:将背景图像设置为禁用状态会更改默认状态的显示

Ios UIButton:将背景图像设置为禁用状态会更改默认状态的显示,ios,uibutton,Ios,Uibutton,在故事板中,我定义了一个必须由程序启用/禁用的ui按钮。其默认状态没有背景图像,标题为“default”。如果其禁用状态既没有背景图像,也只有不同的标题“disabled”(禁用),并且我通过程序在两种状态之间切换,则ui按钮将按预期在模拟器和设备的两种状态中显示: 但是,如果我仅为禁用状态指定背景图像,则ui按钮将按预期在禁用状态下显示,但默认状态现在有一个透明图像和背景图像,即仅显示标题: 我希望将背景图像指定为禁用状态不会将指定更改为默认状态。我错了吗?重新启用时将backgroundI

在故事板中,我定义了一个必须由程序启用/禁用的
ui按钮。其默认状态没有背景图像,标题为“default”。如果其禁用状态既没有背景图像,也只有不同的标题“disabled”(禁用),并且我通过程序在两种状态之间切换,则
ui按钮将按预期在模拟器和设备的两种状态中显示:
但是,如果我仅为禁用状态指定背景图像,则
ui按钮将按预期在禁用状态下显示,但默认状态现在有一个透明图像和背景图像,即仅显示标题:


我希望将背景图像指定为禁用状态不会将指定更改为默认状态。我错了吗?

重新启用时将backgroundImage设置为零:

这使我的按钮再次显示正常


附加阅读:

感谢您的快速重播。但是,在指定背景图像后,我要做的唯一一件事是将enable属性设置为YES或NO。除了对属性的指定之外,几乎没有代码可显示,例如self.deleteCoordinatesButton.enabled=NO;其他一切都是在故事板中设置的。奇怪的是,为“正常状态”设置背景图像对我不起作用。为了得到正确的图像,我必须将state disabled的背景图像设置为nil。无论如何,+1感谢你的努力,谢谢!呜呜,我在forState上的错误:UIControlStateNormal。我已经更新了我的帖子以反映正确的答案。很高兴它对你有用!
[myButton setBackgroundImage:nil forState:UIControlStateNormal];
[myButton setBackgroundImage:nil forState:UIControlStateDisabled];