2013-06-27 60 views
0

我開發一個application.In是我在做比較操作有兩個相似圖片下面圖像對比沒有在iPhone模擬器工作

UIImage *actual_image=usrcheck_image.image; 
NSData *present_image = UIImagePNGRepresentation(actual_image); 
NSData *compare_image = UIImagePNGRepresentation([UIImage imageNamed:@"unchk-1.png"]); 

if([present_image isEqualToData:compare_image]) 
{ 
    set the checked image 
} 
else 
{ 
    set the uncheck image. 
} 

如果我運行此,檢查圖像改爲uncheck.But取消選中圖像沒有chneged檢查image.Everytime其他塊是執行。所以請幫助我如何比較這兩個圖像。此代碼在設備完美工作。但問題是隻在模擬器。

+0

見這個[answer](http://stackoverflow.com/a/7806230/1704346) –

+2

比較圖像數據只是爲了改變複選框狀態(大概)是一個非常糟糕的想法,性能明智。 – Cyrille

+0

那我該如何改變imageview的圖像呢? – user1498119

回答

0

您可以使用UIImageViewhighlighted財產。設置檢查到的圖像作爲highlightedImage財產,並在click事件集:

yourImageView.isHighlighed = !yourImageView.isHighlighed; 

它會自動顯示您的圖片撥動

+0

如果你的問題現在已經解決了,那麼請投我票 –

+0

@ user1498119:你有這個問題嗎ans –

+0

你是說我必須使用兩個imageviews嗎? – user1498119

1

試試這個代碼 -

拍攝2張選中和取消選中的圖像,並將該圖像分配給UIButton。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(0, 0, 160, 30); 
[button setImage:[UIImage imageNamed:@"checkedImage.png"] forState:UIControlStateNormal]; 
[button setImage:[UIImage imageNamed:@"uncheckedImage.png"] forState:UIControlStateSelected]; 
button.tag = 1; 
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:button]; 

並在buttonAction功能 -

selectedBtn.selected = NO; 
button.selected = YES; 
selectedBtn = button; 

在.h文件中只提

UIButton *selectedBtn; 

希望它可以幫助你。

+0

這有點更好。但我不得不改變正常狀態的圖像不選擇狀態。 – user1498119

+0

好的,但我可以知道爲什麼你需要進行圖像比較嗎?讓我知道爲什麼它是需要的,以便我會盡力解決您的問題。 :) – Smita

0

的第一件事是,沒有必要圖像數據進行比較,並沒有必要過於對比圖像,

但是,如果你想比較圖像的手段,只是單純的不喜歡以下

if(usrcheck_image.image==[UIImage imageNamed:@"unchk-1.png"]) { 
    usrcheck_image.image=[UIImage imageNamed:@"chk-1.png"]; 
} else { 
    usrcheck_image.image=[UIImage imageNamed:@"unchk-1.png"]; 
} 
+0

它不工作。 – user1498119

+0

@ user1498119現在檢查我的答案......它是完美的工作..我檢查了.. – Venkat

+0

它不能在simulator.may工作,是它的設備上的工作。我需要做一個模擬器。 – user1498119

相關問題