我如何比较UIButton背景图片标题?

时间:2011-04-01 09:22:45

标签: iphone uiimageview uibutton uiimage compare

在UIButton上,我设置了像这样的背景图像

[twitterButton setBackgroundImage:twitterImage forState:UIControlStateNormal];

twitterImage的类型为UIImage

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

设置了twitterButton图像
[twitterButton setBackgroundImage:twitterImage1 forState:UIControlStateNormal];

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

此条件无效if([twitterbutton.imageView.image isEqual:twitterImage1])

请帮忙

4 个答案:

答案 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

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

答案 2 :(得分:1)

尝试使用UIButton的currentBackgroundImage属性。这将为您提供当前背景图片.. UIButton Reference

答案 3 :(得分:0)

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

修改

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

if([data1 isEqualToData:data2]){

}