作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在检查按钮的图像以获取其状态,如下所示:
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 按钮上总是有一个图像。
上面的检查工作正常,但是当我进入背景然后返回前景时,只有它无法通过上面的方法检查按钮的当前图像,它会进入其他状态。
有什么问题吗?
最佳答案
这是因为您正在比较 UIImage 实例。默认情况下它们被缓存,所以大多数时候你会得到相同的实例。但是应用进入后台后,缓存被清除,你得到一个新的实例,这意味着它不再匹配了。
修复它的两个选项..
使用您当前的方式:
使用按钮状态:
UIControlStateNormal
设置playbtn1.png
图像UIControlStateSelected
设置syncbtn1.png
图像syncBtn.selected
- 如果您更改所选标志,图像将自动更改。关于iphone - 从背景切换到前景时,UIButton currentimage 不返回图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13955188/
我正在检查按钮的图像以获取其状态,如下所示: if([syncBtn.currentImage isEqual:[UIImage imageNamed:@"playbtn1.png"]]) { /
我是一名优秀的程序员,十分优秀!