我正在检查按钮的图像以获得其状态,如下所示:
if([syncBtn.currentImage isEqual:[UIImage imageNamed:@"playbtn1.png"]])
{
//Do something if play button
}
else if([syncBtn.currentImage isEqual:[UIImage imageNamed:@"syncbtn1.png"]])
{
//Do something if sync button
}
else
{
//do something when no image on button
}
按钮上始终有一个图像,可以是syncbtn1.png或playbtn1.png。
以上检查工作正常,但是当我去backgroud&然后返回到前景然后只有它无法从上面的方法检查按钮的当前图像,它进入其他条件。
可能出现什么问题?
答案 0 :(得分:2)
这是因为您正在比较UIImage实例。它们默认是缓存的,因此大多数时候都会获得相同的实例。但是在应用程序到达后台后,缓存将被清除,并且您将获得一个新实例,这意味着它不再匹配。
修复它的两个选项..
使用您当前的方式:
使用按钮状态:
playbtn1.png
UIControlStateNormal
图片
syncbtn1.png
UIControlStateSelected
图片
syncBtn.selected
- 如果您更改所选标记,图像将自动更改。