2011-04-01 12 views
7

내가 어떤 버튼의 코드 어딘가에 지금이UIButton backgroundImage 제목을 어떻게 비교합니까? 있는 UIButton에

[twitterButton setBackgroundImage:twitterImage forState:UIControlStateNormal]; 

twitterImage 같은 배경 이미지를 형있는 UIImage의

되는 설정은 내가 태그 값

[twitterButton setBackgroundImage:twitterImage1 forState:UIControlStateNormal]; 

를 사용 twitterButton 이미지를 설정 클릭 내 문제는 어떻게 twitterButton의 이미지를 비교할 것인가? ... 대신있는 UIButton 이미지 뷰의 이미지 속성의 방법

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

즉 :

이 조건은 if([twitterbutton.imageView.image isEqual:twitterImage1])

답변

10

가 backgroundImageForState에 의해 반환되는있는 UIImage에 대해 비교하는 시도 도와주세요 작동하지 않습니다. ,

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

+0

실제 이미지의 인스턴스를 몇 개나로드하고 있습니까? 동일한 객체 인스턴스가 여러 위치에 설정되어 있으면 제대로 작동합니다. 이미지 데이터를 비교하려면 ... – mmccomb

+0

태그 사용하기 나는 하나의 인스턴스를 만들었습니다. 내가 이미지를 바꿀 수있는 것처럼 로퍼가 작동하고 있습니다 ... 사용 안 함 ... 사용 가능하지만 배경 이미지 비교 만 작동하지 않습니다. – Tariq

0

비싸다고 생각하지만 이미지를 nsdata로 변환 한 다음 isEqualToData를 사용할 수 있습니다.

편집

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

if([data1 isEqualToData:data2]){ 

} 
+0

NSData를 어떻게 비교할 것인가? 조건은 이렇게 될 것입니다. if (UIIMagePng ......) .....하지만이 조건에서 배경 버튼 이미지를로드하는 방법은 무엇입니까? – Tariq

+0

내 글을 수정했습니다. 희망이 도움이됩니다. – Jorge

+0

ur 답장을 보내 주셔서 감사합니다. 긴급한 요구 사항으로 인해이 문제가 플래그로 해결되었습니다. 이제 이미지 대신 bool 플래그를 비교 :) – Tariq

1

있는 UIButton의 currentBackgroundImage 속성을 사용하십시오. 이렇게하면 현재 배경 이미지를 제공합니다 .. UIButton Reference

+0

이것을 시도 \t \t if ([twitterBtn.currentBackgroundImage isEqual : @ "btn_twitter_normal_small1.png"] 현재 작동하지 않습니다. currentBackgroundImage 속성을 사용하는 다른 방법이 있습니까? – Tariq

+0

UIImage를 반환하므로 이미지 이름이 아닌 UIImage를 확인해야합니다. 그것도 시도하지 않는 경우 시도 isEqualTo : – visakh7

+0

[twitterBtn.currentBackgroundImage isEqual : twitterImage1] 시도 할 수 있습니다 – visakh7