2011-01-21 10 views
6

जब मैं अपने MKMapView में MKCircle को स्थानांतरित करने का प्रयास करता हूं तो मुझे यह त्रुटि संदेश मिलता है: -[MKCircle setCoordinate:] unrecognized selector ..। लेकिन दस्तावेज के मुताबिक एमकेसीर्कल एमकेएनोटेशन प्रोटोकॉल के अनुरूप है, इसलिए इसमें setCoordinate: विधि लागू होनी चाहिए (इसके अलावा एक्सकोड मुझे इसके लिए स्वत: सुझाव प्रदान करता है और डीबगर कोई चेतावनी नहीं दिखाता है)।MKMapView में MKCircle को स्थानांतरित करना

क्या किसी को पता है कि समस्या कहां है?

बहुत बहुत धन्यवाद।

उत्तर

9

हालांकि MKCircle MKAnnotation का पालन करती है, MKCircle वर्ग तो (दुर्भाग्य से) संपत्ति समन्वय के रूप में केवल पढ़ने के लिए ओवरराइड करता है:

गोलाकार क्षेत्र के केंद्र बिंदु, अक्षांश और देशांतर के रूप में निर्दिष्ट। (रीड-ओनली)

@property (nonatomic, रीड-ओनली) समन्वय CLLocationCoordinate2D


सरल समाधान removeOverlay: के साथ पुराने ओवरले निकालना और नए केंद्र के साथ एक नया जोड़ने के लिए है समन्वय और त्रिज्या।

+0

हां, यह संपत्ति एमकेएएनोटेशन प्रोटोकॉल में भी पढ़ी जाती है लेकिन वहां भी सेटटर है जो इसे बाईपास करता है। मुझे पता है कि मैं इसे हटा सकता हूं और फिर कहीं और फिर से बना सकता हूं लेकिन मैं कस्टम एनोटेशन के आस-पास स्थान सटीकता दिखाने के लिए सर्कल का उपयोग करता हूं जो मानचित्र में अन्य लोगों को चिह्नित करता है और मैं एनोटेशन के साथ सर्कल को ले जाने के लिए एनिमेट करना चाहता हूं (और निश्चित रूप से विस्तार भी और सर्कल का सिकुड़ना)। लेकिन प्रलेखन के अनुसार स्थिर डेटा (नक्शा आदि पर हाइलाइट इत्यादि) दिखाने के लिए ओवरले का उपयोग किया जाना चाहिए ताकि हटाने/पढ़ने के लिए पर्याप्त होना पड़ेगा। ; ओ) वैसे भी आपके उत्तर के लिए धन्यवाद। – JakubM

+0

मैं इसे हटाने के बजाए सर्कल ओवरले को "ले जाना" चाहूंगा और जोड़ दूंगा क्योंकि मैं इस आंदोलन को एनिमेट करना चाहता हूं। क्या आपको कोई समाधान मिला? – user836026

+1

@ user836026: हां, आपको कस्टम ओवरले बनाने की आवश्यकता है। अधिक जानकारी के लिए [इस सवाल] पर मेरी टिप्पणी देखें (http://stackoverflow.com/questions/9056451/draw-a-circle-of-1000m-radius-around-users-location-in-mkmapview)। – Anna

संबंधित मुद्दे