应用程序从后台返回后,UIButton imageForState不正确

时间:2013-06-25 11:46:07

标签: ios objective-c uibutton

我在.h文件中声明了一个UIButton

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

当我有

if ([self.btnQuarter imageForState:UIControlStateNormal] == [UIImage imageNamed:@"match.png"])

只要应用加载,它就能完美运行。但是,当应用程序从锁定状态返回或在主屏幕上返回时,它不起作用。

2 个答案:

答案 0 :(得分:1)

试试这段代码:

 - (IBAction)nextQtr:(id)sender

   {
    if ([[sender imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"match.png"]])

   }

答案 1 :(得分:0)

它不起作用,因为您正在比较指向对象的指针。在您的情况下,他们指向不同的UIImage,即使图像本身包含相同的数据。 [UIImage imageNamed:]缓存图像,这就是为什么在应用程序启动时它可以正常工作,但是当你输入后台时,缓存被释放(我认为)以释放内存。当您从后台返回前景时,[UIImage imageNamed:]调用会创建相同的UIImage,但会在另一个内存地址创建。