मैं का एक उदाहरण है MKMapViewऔर मानक पिन माउस MKPinAnnotationView द्वारा आपूर्ति की बजाय कस्टम एनोटेशन चिह्न का उपयोग करना चाहते हैं। MKAnnotationView का एक उपवर्ग CustomMapAnnotation कहा जाता है तो, मैं पहले से सेट किया और अधिभावी कर रहा हूँ -(void)drawRect:एक CGImage आकर्षित करने के लिए। यह काम।
मुसीबत आता है जब मैं दोहराने की कोशिश .animatesDropMKPinAnnotationView द्वारा आपूर्ति की कार्यक्षमता; मेरी माउस धीरे-धीरे प्रकट करने के लिए के लिए मैं प्यार होता है, ऊपर से और में गिरा बाएँ-से-सही क्रम, जब एनोटेशन में जुड़ जाते हैं MKMapViewउदाहरण।
यहाँ है - (शून्य) drawRect: CustomMapAnnotation है, जो काम करता है जब तुम सिर्फ UIImage (जो क्या 2 लाइन करता है) आकर्षित करने के लिए:
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
[((Incident *)self.annotation).smallIcon drawInRect:rect];
if (newAnnotation) {
[self animateDrop];
newAnnotation = NO;
}
}
मुसीबत जब आप जोड़ना आता animateDropविधि:
-(void)animateDrop {
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGPoint finalPos = self.center;
CGPoint startPos = CGPointMake(self.center.x, self.center.y-480.0);
self.layer.position = startPos;
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@position];
theAnimation.fromValue=[NSValue valueWithCGPoint:startPos];
theAnimation.toValue=[NSValue valueWithCGPoint:finalPos];
theAnimation.removedOnCompletion = NO;
theAnimation.fillMode = kCAFillModeForwards;
theAnimation.delegate = self;
theAnimation.beginTime = 5.0 * (self.center.x/320.0);
theAnimation.duration = 1.0;
[self.layer addAnimation:theAnimation forKey:@];
}
यह सिर्फ काम नहीं करता है, और कारण का एक बहुत हो सकता है। मैं उन सभी को में अब नहीं मिलेगा। मुख्य बात मैं जानना चाहता हूँ अगर दृष्टिकोण बिल्कुल आवाज़ है, या अगर मैं कुछ पूरी तरह से अलग की कोशिश करनी चाहिए है।
मैं एक एनीमेशन के लेनदेन में पूरी बात पैकेज करने के लिए इतना है कि beginTime पैरामीटर वास्तव में काम कर सकते हैं भी कोशिश की, इस सब पर कुछ भी नहीं लग रहा था। अगर इस वजह से मैं कुछ प्रमुख बिंदु याद आ रही है मैं नहीं जानता या क्या यह क्योंकि MapKit किसी भी तरह मेरी एनिमेशन trashing है।
// Does nothing
[CATransaction begin];
[map addAnnotations:list];
[CATransaction commit];
अगर किसी को भी इस तरह एनिमेटेड MKMapAnnotations के साथ किसी भी अनुभव है, मैं, कुछ संकेत अच्छा लगेगा आप दृष्टिकोण पर CAAnimation सलाह की पेशकश कर सकते अन्यथा अगर, वह भी महान होगा।













