2011-04-01 93 views
7

在一个UIButton我设置背景图像这样我会如何比较UIButton backgroundImage标题?

[twitterButton setBackgroundImage:twitterImage forState:UIControlStateNormal]; 

twitterImage被类型的UIImage的

现在某处上的任何按钮的代码点击我使用的标记值

[twitterButton setBackgroundImage:twitterImage1 forState:UIControlStateNormal]; 

设置twitterButton图像我的问题是如何比较twitterButton的图像?

这个条件是不工作if([twitterbutton.imageView.image isEqual:twitterImage1])

请帮

回答

10

尝试对由backgroundImageForState返回UIImage的比较:方法替代的UIButton的ImageView图像属性...

if ([[twitterButton backgroundImageForState:UIControlStateNormal] isEqual:twitterImage1]) 

即。 ,

if ([[twitterButton backgroundImageForState:UIControlStateNormal] isEqual:[UIImage [email protected]"myImage.png"]]){ 
    // Button has a background image named 'myImage.png' 
}else{ 
    // Button has not a background image named 'myImage.png' 
} 

查看UIButton class reference了解更多信息。

+0

只是尝试这样做\t如果([twitterBtn backgroundImageForState设置和backgroundImage :UIControlStateNormal] isEqual:twitterImage1]).....不工作:( – Tariq 2011-04-01 09:33:53

+0

你加载了多少实体图像实例?如果它是在同一个对象实例设置在多个地方,那么这应该工作,否则你会有比较图像数据... – mmccomb 2011-04-01 09:37:55

+0

使用标签我创建了一个实例。所有p roperty正在像我可以改变图像...禁用...启用...但只有背景图像比较不起作用 – Tariq 2011-04-01 09:45:27

0

我认为这很昂贵,但您可以尝试将图像转换为nsdata,然后使用isEqualToData。

编辑

NSData *data1=UIImagePNGRepresentation([twitterButton backgroundImageForState:UIControlStateNormal]); 
NSData *data2=UIImagePNGRepresentation(anotherUIImage); 

if([data1 isEqualToData:data2]){ 

} 
+0

我将如何比较NSData ..我knw的条件会是这样的..如果(UIIMagePng ......).....但在这种情况下,我将如何加载背景按钮图像? – Tariq 2011-04-01 09:47:07

+0

我编辑了我的帖子。希望这个帮助。 – Jorge 2011-04-01 10:01:41

+0

感谢您的回复...由于紧急要求,我已通过标志解决了此问题。现在比较bool国旗而不是图片:) – Tariq 2011-04-01 10:12:17

1

尝试使用的UIButton的currentBackgroundImage财产。这会给你当前的背景图片.. UIButton Reference

+0

我有尝试这\t \t if([twitterBtn。currentBackgroundImage isEqual:@“btn_twitter_normal_small1.png”]) 它不工作..是否有任何其他方式使用currentBackgroundImage属性? – Tariq 2011-04-01 09:43:55

+0

记住它返回一个UIImage,所以你必须检查,而不是图像名称。如果这还不起作用isEqualTo: – visakh7 2011-04-01 09:45:33

+0

你可以尝试[twitterBtn.currentBackgroundImage isEqual:twitterImage1] – visakh7 2011-04-01 09:46:27