我在.h文件中声明了一个UIButton
@property (retain, nonatomic) IBOutlet UIButton *btnQuarter;
当我有
时if ([self.btnQuarter imageForState:UIControlStateNormal] == [UIImage imageNamed:@"match.png"])
只要应用加载,它就能完美运行。但是,当应用程序从锁定状态返回或在主屏幕上返回时,它不起作用。
答案 0 :(得分:1)
试试这段代码:
- (IBAction)nextQtr:(id)sender
{
if ([[sender imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"match.png"]])
}
答案 1 :(得分:0)
它不起作用,因为您正在比较指向对象的指针。在您的情况下,他们指向不同的UIImage
,即使图像本身包含相同的数据。 [UIImage imageNamed:]
缓存图像,这就是为什么在应用程序启动时它可以正常工作,但是当你输入后台时,缓存被释放(我认为)以释放内存。当您从后台返回前景时,[UIImage imageNamed:]
调用会创建相同的UIImage
,但会在另一个内存地址创建。