Das Beispiel - App Worldcities zeigt , wie Sie in einen bestimmten Ort vergrößern können , aber es ist kein Stift dort ab. Eine weitere Probe App namens MapCallouts tut Drop Pins aber es heran nicht.
Der Zoom-Teil ist einfach (siehe didChooseWorldCity Methode in Worldcities).
Um eine Stecknadel fallen, müssen Sie die AddAnnotation Mitteilung an den mapview senden und ihm ein Objekt senden, die das MKAnnotation Protokoll implementiert. So müssen Sie zuerst eine Klasse erstellen, die MKAnnotation implementiert. Hier ist ein Beispiel genannt 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
Nun könnte man die Probe Worldcities ändern, indem Sie diesen Code am Anfang der animateToPlace Methode fügt hinzu:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
worldCity.coordinate in der Worldcities App ist nur eine Eigenschaft des Typs CLLocationCoordinate2D, die zwei Felder Breite und Länge hat. Die beiden Schwimmer würde dorthin gehen.
Beachten Sie die AddAnnotation wird nur einen Stift setzen auf die Stadt. Um einen animierten Abwurf Stift zu bekommen, müssen Sie auch die viewForAnnotation Methode und setzen animatesDrop auf YES umzusetzen. Sehen Sie ein Beispiel in MapViewController.m in MapCallouts. Auch setzen die Delegierten mapview, wo immer die viewForAnnotation Methode implementiert ist (in der Regel selbst / Datei Besitzer).