2014-02-16 33 views
0

我需要檢查將哪個圖像設置爲按鈕背景。 可以有三個選項,基於幾個因素的程序集。 如果特定的背景在某些動畫之後設置,應該觸發某些功能。如何檢查按鈕背景上的哪個圖像

所以,我需要這樣的:如果(button.getBackgroundImage == certainBackgroundImage){做某事}

現在,我知道,有設置按鈕背景的一些圖像的方法:

[button setBackgroundImage:[UIImage imageNamed:@"cloudRed.png"] forState:UIControlStateNormal]; 

有沒有一種方法,會做這樣的事情:

UIImage *red cloud = = [UIImage imageNamed:@"cloudRed.png"]; 
if([cloud imageForState:UIControlStateNormal] == _cloudRed){ 

           NSLog(@"OMG"); 
          } 
+1

這是一個可怕的編程設計選擇。您不應該使用您設置的視圖來確定要運行哪個代碼分支。您應該讓狀態以其他方式存儲在模型中,而不是檢查視圖以確定您的狀態。 – ArtOfWarfare

+0

是的,我最終通過標籤對它們進行了排序,但這種方法也適用,從我提供的這個小代碼中就不太清楚。感謝您的反饋 – SteBra

回答

3

backgroundImageForState method of UIButton returns the UIImage

- (UIImage *)backgroundImageForState:(UIControlState)state 

所以幾乎你如何描述:

UIImage *imageToCheckFor = [UIImage imageNamed:@"someImage.png"]; 

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:imageToCheckFor forState:UIControlStateNormal]; 

// Later to Check 

if ([button backgroundImageForState:UIControlStateNormal] == imageToCheckFor) { 

}