2015-06-09 77 views
0

我想檢查一些UIButton圖像,看看他們是否是某些圖像。如果是,我想將NSString設置爲一個值,但該值始終爲空。我究竟做錯了什麼?檢查UIButton圖像

if ([self.firstButton.currentImage isEqual:[UIImage imageNamed:@"image"]] 
    && [self.secondButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]] 
    && [self.thirdButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]] 
    && [self.fourthButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]] 
    && [self.fifthButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]]) { 
    self.myString = @"some string"; 
} 

NSLog(@"My String: %@", self.myString); 
+0

放在Images.xcassets或應用程序捆綁在Xcode – suthar

+0

他們在Images.xcassets – raginggoat

+1

你不應該用你的用戶界面檢查狀態圖像。您應該使用其他數據存儲來執行此操作。 – Fogmeister

回答

1

你可以這樣做

[[self.firstButton imageForState:UIControlStateNormal]isEqual:[UIImage imageNamed:@"image"]] 

試試這一個。這可能有幫助。

0

比較圖像內容並不是一項簡單的任務,並且比較手柄和內存是不可靠的。

嘗試將圖像轉換爲NSData並將它們相互比較。 {

NSData * const firstButtonImageData = UIImagePNGRepresentation(self.firstButton.currentImage); 
NSData * const secondButtonImageData = UIImagePNGRepresentation(self.secondButton.currentImage); 
NSData * const myImageData = UIImagePNGRepresentation([UIImage imageNamed:@"image"]); 
NSData * const anotherImageData = UIImagePNGRepresentation([UIImage imageNamed:@"another_image"]); 

if ([firstButtonImageData isEqualToData:myImageData] && 
     [secondButtonImageData isEqualToData:anotherImageData]) 
{ 
    self.myString = @"some string"; 
} 

NSLog(@"My String: %@", self.myString);