2011-08-14 7 views
6

में बटन छवियों को कैसे जांचें मैं वर्तमान में यह पता लगाने की कोशिश कर रहा हूं कि यह जांचना संभव है कि बटन किस छवि का उपयोग करता है।एक्सकोड

आइए कहें कि मेरे पास image1 और image2 है।

यदि बटन छवि छवि 1 है तो ऐसा करें और यदि बटन छवि छवि 2 है तो ऐसा करें।

लेकिन xcode नहीं करता है मुझे किसी भी स्वत: भरण विकल्प देना ....

[m1 setImage:[UIImage imageNamed: @"Penguin.png"] forState:UIControlStateNormal]; 

यह मैं कैसे छवियों सेट है। लेकिन मैं अपने पेंगुइन या पेंगुइन 2 को मक्खन कैसे ढूंढूं?

उत्तर

6

कोको टच मॉडल-व्यू-कंट्रोलर पैटर्न के आसपास डिज़ाइन किया गया था, इसलिए आप उस पैटर्न को अपनाने का प्रयास करना चाहेंगे। राज्य की जानकारी पुनर्प्राप्त करने की कोशिश करने के बजाय - चयनित पेंगुइन - दृश्य से - बटन - इसे अपने नियंत्रक वर्ग में एक आवृत्ति चर में संग्रहीत करें।

छवि स्थापित करने के लिए ऐसा दिखाई दे सकता आपका कोड: फिर

self.currentImage = @"Penguin.png"; 
[m1 setImage:[UIImage imageNamed: currentImage] forState:UIControlStateNormal]; 

जब आप मान की जाँच करने की जरूरत है:

if ([@"Penguin.png" isEqual:self.currentImage]) { 
    do something; 
} 
3

छवियों की समानता जाँच हो रही है तो तरह से किया जाता है:

if ([[UIImage imageNamed:@"Penguin.png"] isEqual:m1.currentImage]) { 
    // do something 
} 
+0

मुझे नहीं लगता कि यह काम कर सकता है, bec एक्यूज आप एक ही पिता से दो अलग-अलग उदाहरणों की तुलना करने की कोशिश कर रहे हैं। इसे हमेशा झूठी –

+0

प्रिंट करना चाहिए यह मेरी मशीन पर काम करता है। कोशिश करके देखो। – nicholjs

+0

यह केवल तभी काम करेगा जब आप [UIImage imageNamed:] विधि से m1 पर छवि सेट करते हैं, क्योंकि यह हर समय कनेक्शन रखता है, लेकिन यदि आप [[UIImage alloc] initWithContentsOfFile द्वारा सेट करने का प्रयास करते हैं:] यह हमेशा गलत होगा –

2

2 विधियों का उपयोग इस के लिए किया जा सकता है:

1.

UIImage *image = self.myButton.currentBackgroundImage; 

2.

myImageView.image = [myButton backgroundImageForState:myButton.state]; 
2
UIImage *img=[(UIButton *) sender currentImage]; 

if(img == [UIImage imageNamed:@"edit"]) 
{ 
    //If do something 
}` 

इस आशा यह काम करेंगे

+0

यदि यह काम नहीं करता है तो @ "edit.png" या छवि का कौन सा प्रारूप जोड़ें। मेरे लिए यह ठीक से काम कर रहा है – krishh

5

कोशिश बस छवि के आधार पर बटन कार्रवाई के लिए इस कोड का इस्तेमाल किया

- (IBAction)checkButtonClicked:(UIButton *)sender { 

    if ([checkButton.currentImage isEqual:[UIImage imageNamed:@"checkbox.png"]]) 
     [checkButton setImage:[UIImage imageNamed:@"Checked.png"] forState:UIControlStateNormal]; 
//do some thing here for your image1 

     else 
    [checkButton setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal]; 
    //do some thing here for your image 2 

}