UIButton背景图片没有变化

KDe*_*kar 4 iphone objective-c uibutton ios

我想根据Web服务响应更改按钮背景图像.如果作为响应我将未读消息设置为true,则图像将不同,如果没有未读消息,则图像将不同.我得到了很好的响应,但无法更改按钮的背景图像.

这是我正在使用的片段

if(unread>0){
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"unread.png"] forState:UIControlStateNormal];
}
else{
    [badgeTitle setBackgroundImage:[UIImage imageNamed:@"read.png"] forState:UIControlStateNormal];
}
Run Code Online (Sandbox Code Playgroud)

Hit*_*esh 7

如果你看一下,解决方案可以非常简单.保留全局UIButton而不是本地UIButton.这有助于,当Web请求返回响应时,按钮需要存在于范围内,而不是从内存中删除.

所以使用,

self.myButton = [UIButton buttonWithType:UIButtonTypeCustom];

[self.myButton setBackgroundImage:[UIImage imageNamed:@"unread.png"] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

要么

[self.myButton setImage:[UIImage imageNamed:@"unread.png"] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

而且,如果您检查单击按钮,请按照以下步骤操作:

-(IBAction)checkForMsgCount: (id)sender
{
  UIButton *buttonObj = (UIButton*)sender;

[buttonObj setBackgroundImage:[UIImage imageNamed:@"unread.png"] forState:UIControlStateNormal];
}
Run Code Online (Sandbox Code Playgroud)

这会更改背景图像,对于响应该功能的按钮.