我需要在 MKMapView 上创建上面的 Annotation 视图。我能够创建自定义注释视图,但是在点击注释时,视图需要打开带有大文本的图像,我无法创建那个。请提供一些链接或完成此任务的方法。
问问题
39079 次
1 回答
37
要创建自定义注释视图(您替换标准引脚),您只需在方法中设置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 中,请参阅自定义 MKAnnotation 标注视图?用于自定义标注的一些选项。
于 2013-04-27T14:52:26.570 回答