Έχω μια περίπτωση MKMapViewκαι θα ήθελαν να χρησιμοποιήσουν εικόνες έθιμο σχολιασμό αντί των κατ 'αποκοπή εικονίδια pin που παρέχεται από MKPinAnnotationView. Έτσι, έχω να στήσετε μια υποκατηγορία των MKAnnotationView ονομάζεται CustomMapAnnotation και είμαι επιτακτικούς -(void)drawRect:να σχεδιάσετε ένα CGImage. Αυτό λειτουργεί.
Το πρόβλημα έρχεται όταν προσπαθώ να αναπαράγουν τη .animatesDropλειτουργικότητα που παρέχεται από MKPinAnnotationView? Θα ήθελα πολύ για τις εικόνες μου να εμφανίζονται σταδιακά, έπεσε από πάνω και από αριστερά προς τα δεξιά ώστε, όταν οι σχολιασμοί προστίθενται στο 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 έχει διαλύσει κινήσεις μου με κάποιο τρόπο.
// Does nothing
[CATransaction begin];
[map addAnnotations:list];
[CATransaction commit];
Αν κάποιος έχει κάποια εμπειρία με κινούμενα MKMapAnnotations όπως αυτό, θα ήθελα κάποιες συμβουλές, αλλιώς αν μπορείτε να προσφέρετε CAAnimation συμβουλές σχετικά με την προσέγγιση, ότι θα ήταν πάρα πολύ μεγάλη.













