Η εφαρμογή του δείγματος WorldCities δείχνει πώς μπορείτε να κάνετε ζουμ σε μια συγκεκριμένη θέση, αλλά δεν πέφτει μια καρφίτσα εκεί. Μια άλλη εφαρμογή δείγμα ονομάζεται MapCallouts κάνει καρφίτσες πτώση αλλά δεν μεγεθύνετε.
Το τμήμα ζουμ είναι εύκολη (βλέπε μέθοδο didChooseWorldCity σε WorldCities).
Για να τοποθετήσετε μια καρφίτσα, θα πρέπει να στείλετε το μήνυμα addAnnotation στο MapView και στείλτε ένα αντικείμενο που υλοποιεί το πρωτόκολλο MKAnnotation. Έτσι, θα πρέπει πρώτα να δημιουργήσετε μία κλάση που υλοποιεί MKAnnotation. Εδώ είναι ένα παράδειγμα που ονομάζεται MyMapPin:
//MyMapPin.h...
#import <MapKit/MapKit.h>
@interface MyMapPin : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *subtitle;
NSString *title;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic,retain) NSString *subtitle;
@property (nonatomic,retain) NSString *title;
- (id) initWithCoords:(CLLocationCoordinate2D) coords;
@end
//MyMapPin.m...
#import "MapPin.h"
@implementation MyMapPin
@synthesize coordinate;
@synthesize subtitle;
@synthesize title;
- (id) initWithCoords:(CLLocationCoordinate2D) coords {
self = [super init];
if (self != nil) {
coordinate = coords;
}
return self;
}
- (void) dealloc
{
[title release];
[subtitle release];
[super dealloc];
}
@end
Τώρα μπορείτε να τροποποιήσετε το δείγμα WorldCities με αυτόν τον κωδικό στην αρχή της μεθόδου animateToPlace:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
worldCity.coordinate στην εφαρμογή WorldCities είναι απλώς μια ιδιότητα τύπου CLLocationCoordinate2D που έχει δύο πεδία γεωγραφικού πλάτους και μήκους. Οι δύο πλωτήρες θα πάει εκεί.
Σημειώστε το addAnnotation θα βάλει απλά μια καρφίτσα στην πόλη. Για να πάρετε μια κινούμενη καρφίτσα πτώση, θα πρέπει επίσης να εφαρμόσει τη μέθοδο viewForAnnotation και που animatesDrop σε YES. Βλέπε ένα παράδειγμα στο MapViewController.m σε MapCallouts. Επίσης, ορίζεται εκπρόσωπος της MapView για όπου η μέθοδος viewForAnnotation υλοποιείται (συνήθως μόνος / Αρχείο του ιδιοκτήτη).