के रोटेशन सेंटर को कैसे सेट करें मुझे MKAnnotationView
एस के साथ कोई समस्या है जब MKUserTrackingModeFollowWithHeading
MKMapView पर सक्षम है।एमकेएनोटेशन व्यू
मैंने एमकेएनोटेशन व्यू के केंद्र ऑफसेट संपत्ति का उपयोग करके अपनी छवियों को स्थान दिया। छवि के केंद्र में समन्वय प्रणाली को पिन की नोक रिश्तेदार के निर्देशांक निर्दिष्ट करना कुछ हद तक जवाबी सहज ज्ञान युक्त है, लेकिन मैं निम्न सूत्र के साथ आया था:
annotationView.centerOffset = CGPointMake(imageWidth/2.0 - tipXCoordinate, imageHeight/2.0 - tipYCordinate);
यह अंदर और बाहर नक्शा जूमिंग के लिए ठीक काम करता है । पिन की युक्तियां मानचित्र पर अपनी सापेक्ष स्थिति रखती हैं।
हालांकि, जब मैं MKUserTrackingModeFollowWithHeading
सक्षम करता हूं, तो यह अब और काम नहीं करेगा। पिन टिप के बजाए छवि के केंद्र के चारों ओर घूमते हैं। तो जब नक्शा घूमता है, तो युक्तियाँ उन स्थानों पर कोई बिंदु नहीं देती हैं जिन्हें वे एनोटेट करना चाहते हैं।
मैंने frame
और center
MKAnnotationView
के गुणों के साथ थोड़ा सा खेला है, लेकिन मुझे लगता है कि वे पिन के संरेखण पर कोई प्रभाव नहीं डाल रहे हैं।
दिलचस्प बात यह है कि MKPinAnnotationView
centerOffset
का उपयोग नहीं करता है, लेकिन इसके बजाय frame
स्थानांतरित किया गया है। हालांकि, मैं इसे पुन: उत्पन्न करने में असमर्थ था। मेरे कस्टम व्यू के frame
को बदलना इसे बिल्कुल भी नहीं चला था।
किसी भी अंतर्दृष्टि के लिए धन्यवाद प्रदान कर सकते हैं :-)
समाधान:
centerOffset का उपयोग न करें! इसके बजाय annotationView.layer.anchorPoint
का उपयोग करें। एंकर पॉइंट की समन्वय प्रणाली भी बहुत अच्छी है। निर्देशांक 0.0 (ऊपर/बाएं) 1.0 (नीचे/सही) से छवि आयत की रेंज:
annotationView.layer.anchorPoint = CGPointMake(tipXCoordinate/imageWidth, tipYCordinate/imageHeight);
अपने दोस्त को बताएं, वह सप्ताह का मेरा निजी नायक है :-) बहुत धन्यवाद! – Chris