ドットはあなたの現在地を示しています。
座標を使用してピンを追加する場合は、プロトコルaddAnnotation
に準拠するオブジェクトを使用してメソッドを呼び出す必要があります。MKAnnotation
このようなオブジェクトにはプロパティがありますcoordinate
(クラスに追加する必要があります)。
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
MKMapViewDelegate
また、コントローラーにプロトコルを追加し、-mapView:viewForAnnotation:
メソッドを実装する必要があります。として機能し-tableView:viewForRowAtIndexPath:
ます。
- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return nil;
}
static NSString *annotationIdentifier = @"annotation";
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[_mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier]; // Reusing
if (!annotationView) {
MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationIdentifier];
pinView.animatesDrop = YES;
annotationView = pinView;
}
else {
annotationView.annotation = annotation; // Reusing already created pin as UITableViewCell does
}
return annotationView;
}
それからあなたが電話するとき
MKMapView *mapView = ...;
id<MKAnnotation> obj = ...;
[mapView addAnnotation:obj];
ピンは地図上に配置されます。
ズームについては、そこを見てください。これらの目的に便利なカテゴリがあります。
現在の場所のドットを削除する場合は、クラスMKUserLocation
が含まれているオブジェクトを見つけてmapView.annotations
から、を呼び出す必要があります[mapView removeAnnotation:userLocationDot]
。