在UIButton上,我设置了像这样的背景图像
[twitterButton setBackgroundImage:twitterImage forState:UIControlStateNormal];
twitterImage的类型为UIImage
现在在点击任何按钮的代码中某处我使用标记值
设置了twitterButton图像[twitterButton setBackgroundImage:twitterImage1 forState:UIControlStateNormal];
我的问题是如何比较twitterButton的图像?
此条件无效if([twitterbutton.imageView.image isEqual:twitterImage1])
请帮忙
答案 0 :(得分:10)
尝试与backgroundImageForState:方法返回的UIImage进行比较,而不是UIButton imageView的image属性......
if ([[twitterButton backgroundImageForState:UIControlStateNormal] isEqual:twitterImage1])
即,
if ([[twitterButton backgroundImageForState:UIControlStateNormal] isEqual:[UIImage imageNamed@"myImage.png"]]){
// Button has a background image named 'myImage.png'
}else{
// Button has not a background image named 'myImage.png'
}
有关详细信息,请参阅UIButton class reference。
答案 1 :(得分:2)
你无法比较UIButton的backgroundImage.you使用一些参考变量设置backgroundImage
答案 2 :(得分:1)
尝试使用UIButton的currentBackgroundImage
属性。这将为您提供当前背景图片.. UIButton Reference
答案 3 :(得分:0)
我认为这很昂贵,但您可以尝试将图像转换为nsdata,然后使用isEqualToData。
修改
NSData *data1=UIImagePNGRepresentation([twitterButton backgroundImageForState:UIControlStateNormal]);
NSData *data2=UIImagePNGRepresentation(anotherUIImage);
if([data1 isEqualToData:data2]){
}