在应用程序从后台返回后,UIButton imageForState不正确
我有一个在.h文件中声明的UIButton
@property (retain, nonatomic) IBOutlet UIButton *btnQuarter;
当我有
if ([self.btnQuarter imageForState:UIControlStateNormal] == [UIImage imageNamed:@"match.png"])
一旦应用程序加载它完美的作品。 但是,当应用程序从locking或在主屏幕上返回时,它不起作用。
试试这个代码:
- (IBAction)nextQtr:(id)sender { if ([[sender imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"match.png"]]) }
它不起作用,因为你正在比较指向对象的指针。 在你的情况下,他们指向不同的UIImage
,即使图像本身包含相同的数据。 [UIImage imageNamed:]
caching图像,这就是为什么在应用程序启动时,它正常工作,但是当你进入后台caching释放(我认为),以释放内存。 当你从背景返回到前景时,[ UIImage imageNamed:]
调用创build相同的UIImage
,但在另一个内存地址。