MKMapViewで上記の注釈ビューを作成する必要があります。カスタムアノテーションビューを作成することはできますが、アノテーションをタップすると、その大きなテキストを含む画像を開く必要があり、それを作成することはできません。このタスクを実行するためのリンクまたは方法を提供してください。
カスタム注釈ビュー(標準ピンの代替)を作成するには、 image
の MKAnnotationView
プロパティを設定するだけです。 viewForAnnotation
メソッド:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
{
return nil;
}
else if ([annotation isKindOfClass:[YourAnnotationClassHere class]]) // use whatever annotation class you used when creating the annotation
{
static NSString * const identifier = @"MyCustomAnnotation";
MKAnnotationView* annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView)
{
annotationView.annotation = annotation;
}
else
{
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:identifier];
}
annotationView.canShowCallout = NO; // set to YES if using customized rendition of standard callout; set to NO if creating your own callout from scratch
annotationView.image = [UIImage imageNamed:@"your-image-here.png"];
return annotationView;
}
return nil;
}
centerOffset
プロパティを調整して、ピンを希望どおりに正確に並べることもできます。
コールアウトのカスタマイズに関して、最も簡単なアプローチは、leftCalloutAccessoryView
、rightCalloutAccessoryView
、および/またはdetailCalloutAccessoryView
を指定することです。これにより、驚くほどのコントロールが可能になり、あらゆる種類の画像、ラベルなどを追加できます。
コールアウトの根本的な再設計を行う場合は、viewForAnnotation
をcanShowCallout
にNO
に設定してから、カスタム注釈ビューで setSelected
に応答して、独自のコールアウトを表示できます。 Swiftで、コールアウトをカスタマイズするためのいくつかのオプションについては、 MKA注釈コールアウトビューのカスタマイズ? を参照してください。