MapKit और एनोटेशन

वोट
0

मैं बहुत XCode और iPhone विकास के लिए नया हूँ तो मेरे साथ सहन कृपया अगर इस सवाल का भी सरल है। लेकिन मैं एक नक्शा है और मैं सफलतापूर्वक मेरी एनोटेशन के लिए यह करने के लिए छवियों (नहीं पिन) को शामिल किया है। और मैं छवि जब उपयोगकर्ता एनोटेशन में से एक का चयन करता है बदल सकते हैं।

मैं एक वर्ग है जो निम्न तरीकों के साथ MKAnnotationView से विरासत बनाया: -

- (id)initWithAnnotation:

- (void)setAnnotation:

- (void)drawRect:

और मैं का उपयोग कर रहा हूँ

- (void)touchesBegan

पता करने के लिए जब एक एनोटेशन चुना गया है। और touchesBegan में मैं कर रहा हूँ: -

UIImage *i = [UIImage imageNamed:@A.png];
self.image = i;

छवि बदलने के लिए। लेकिन क्या मैं वास्तव में पर स्टम्प्ड हूँ कि कैसे मैं छवि वापस बदल सकता हूँ करने के लिए यह मूल छवि है जब उपयोगकर्ता अगले एनोटेशन का चयन करता है। मैं प्रयास कर चुका हूं:-

NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}

लेकिन यह त्रुटियों

और मैंने कोशिश की

for (MKAnnotationView *ann in map.selectedAnnotations){
if ([ann isMemberOfClass:[Place class]])
{
place = (Place *)ann;
NSLog(@second = %@@ %f@ %f, place.title, place.longitude, place.latitude);
if (currentPlaceID == place.placeID) {
//UIImage *i = [UIImage imageNamed:@A.png];

//ann.image = i;
}
else {
UIImage *i = [UIImage imageNamed:@pin.png];

ann.image = i;
}
}

}

उपरोक्त कोड ठीक काम करता है जब तक मैं ann.image को = मैं मिलता है, फिर त्रुटियों यह। त्रुटियों मैं प्रकार हैं: -

*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'

हाँ, मैं देख सकता हूँ कि मेरे घर वस्तु एक छवि ताकि कारण है कि यह गलत हो रहा है नहीं है। लेकिन अगर मैं अपनी जगह वस्तु पर एक छवि संपत्ति बना सकते हैं - कैसे है कि एनोटेशन छवि बदल जाएगा मैं क्या करने की कोशिश कर रहा हूँ जो क्या।

कृपया सलाह के रूप में मैं अब 2 दिनों के लिए इस पर हलकों में चारों ओर जा रहा किया गया है !!!!

अग्रिम चेरिल धन्यवाद

29/10/2009 को 15:56
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

चेरिल,

मैं पूरी तरह से तुम क्या करने की कोशिश कर रहे हैं, लेकिन यहाँ कुछ विचार कर रहे हैं का पालन नहीं करते:

यहाँ मैं मूल छवि बहाल करने के लिए क्या करना होगा क्या करना है:

MKAnnotationView के अपने उपवर्ग में, दो UIImage गुण जोड़ने के लिए,

firstImage और secondImage, बनाए रखने के लिए निर्धारित किया है।

जब आप एनोटेशन दृश्य init, दोनों छवियों की स्थापना की। (बिंदु जहां अगर आप अपनी टिप्पणी को देखने के लिए छवि आवंटित में भी यह अपने नए firstImage संपत्ति को बचाने के लिए)

उसके बाद, आप कह सकते हैं

self.image = firstImage;

या

self.image = secondImage.

यही कारण है कि जगह में उचित छवि स्वैप करेंगे, जबकि बहाल करने के लिए चारों ओर अन्य छवि रखते हुए।

तुम्हारा कोड:

NSArray *selectedAnnotations = map.selectedAnnotations; for(id annotationView in selectedAnnotations) { [map    
deselectAnnotation:[annotationView annotation] animated:NO]; }

सही नहीं है। यह एनोटेशन की एक सरणी के लिए नक्शा पूछता है, और फिर उन्हें एनोटेशन विचारों के रूप में व्यवहार करता है।

एक एनोटेशन एक डाटा मॉडल वस्तु है। यह डेटा एक एनोटेशन का वर्णन होता है।

एक एनोटेशन देखें वस्तु एक अस्थायी प्रदर्शन के नक्शे पर एक टिप्पणी के प्रदर्शित करने के लिए अगर यह वर्तमान में दृश्यमान है इस्तेमाल किया वस्तु है। वहाँ हमेशा के नक्शे पर हर एनोटेशन के लिए एनोटेशन विचारों नहीं हैं।

12/11/2009 को 21:56
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more